JP6678357B2 - Motion vector selection and prediction method in video coding system - Google Patents

Motion vector selection and prediction method in video coding system Download PDF

Info

Publication number
JP6678357B2
JP6678357B2 JP2017551080A JP2017551080A JP6678357B2 JP 6678357 B2 JP6678357 B2 JP 6678357B2 JP 2017551080 A JP2017551080 A JP 2017551080A JP 2017551080 A JP2017551080 A JP 2017551080A JP 6678357 B2 JP6678357 B2 JP 6678357B2
Authority
JP
Japan
Prior art keywords
motion vector
prediction
encoding
block
prediction block
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.)
Expired - Fee Related
Application number
JP2017551080A
Other languages
Japanese (ja)
Other versions
JP2018513617A (en
Inventor
チア ヤァーン ツァイ
チア ヤァーン ツァイ
チャオ クアン
チャオ クアン
シャオポー リウ
シャオポー リウ
Original Assignee
リアルネットワークス,インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by リアルネットワークス,インコーポレーテッド filed Critical リアルネットワークス,インコーポレーテッド
Publication of JP2018513617A publication Critical patent/JP2018513617A/en
Application granted granted Critical
Publication of JP6678357B2 publication Critical patent/JP6678357B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、ビデオ信号の符号化及び復号化に関し、より詳細には、ビデオシーケンスのフレームの予測動きベクトルの選択に関する。   The present invention relates to encoding and decoding video signals, and more particularly, to selecting predicted motion vectors for frames of a video sequence.

デジタル画像、演説/音声、グラフィックス、ビデオ等のデジタルマルチメディアの登場により、公開された新しいアプリケーション等、さまざまなアプリケーションが大幅に改善され、信頼性の高い記憶、通信、伝送、コンテンツの検索やアクセスが比較的容易になった。全体として、デジタルマルチメディアのアプリケーションは、エンターテイメント、情報、医療、セキュリティ等幅広い分野を網羅しており、さまざまな形で社会に役立っている。カメラやマイクロフォン等のセンサーで捕捉されるマルチメディアは、しばしばアナログであり、PCM(Pulse Coded Modulation)形式でデジタル化工程によりデジタル化される。しかし、デジタル化後は、スピーカ及び/又はTVディスプレイに必要とされるアナログ表現を再現するのに必要なデータの量が重要となる。つまり、大量のデジタルマルチメディアコンテンツの効率的な通信、記憶又は伝送には、未加工のPCM形式から圧縮された表現への圧縮を必要とする。従って、マルチメディアの圧縮に多くの技術が発明されている。長年にわたり、ビデオ圧縮技術は、非圧縮デジタルビデオと同様に、高い心理的な視覚品質を維持しながら、10から100の間の高い圧縮係数を達成している点で、非常に高度に成長してきた。   With the advent of digital multimedia, such as digital images, speech / speech, graphics, and video, a variety of applications, including new and published applications, have been significantly improved to provide reliable storage, communication, transmission, content search, Access is relatively easy. Overall, digital multimedia applications cover a wide range of fields, including entertainment, information, healthcare, and security, and are useful to society in many ways. Multimedia captured by sensors such as cameras and microphones is often analog and digitized by a digitizing process in PCM (Pulse Coded Modulation) format. However, after digitization, the amount of data needed to recreate the analog representation required for speakers and / or TV displays becomes important. That is, efficient communication, storage or transmission of large amounts of digital multimedia content requires compression from the raw PCM format to a compressed representation. Accordingly, many techniques have been invented for multimedia compression. Over the years, video compression technology has grown very high in achieving high compression factors between 10 and 100, while maintaining high psychological visual quality, similar to uncompressed digital video. Was.

(MPEG-1、MPEG-2、H.263、MPEG-4 part2、MPEG-4 AVC/H.264、MPEG-4 SVCやMVCのような多数の標準化団体主導のビデオ符号化標準や、Windows Media Video、RealVideo、On2 VP等の業界主導の独自の標準によって示されているように、)現在までのところビデオ圧縮の技術及び科学において莫大な進歩がなされているが、更に高品質で、高精細で、かつ現在では3D(ステレオ)にいつでもどこでもアクセス可能という消費者の欲求の増加により、DVD/BD、ラジオ放送、ケーブル放送/衛星放送、有線及びモバイルのネットワーク等の様々な手段を介して、PC/ラップトップ、テレビ、セットトップボックス、ゲーム機、ポータブルメディアプレーヤ/デバイス、スマートフォン、ウェアラブルコンピュータ装置等の様々なクライアント装置への配信を、より高いレベルのビデオ圧縮により送達することが必要とされている。標準化団体主導の標準では、高効率ビデオ符号化におけるISO MPEGの最近開始された取り組みにより、新技術の貢献と、ITU-T標準委員会によるH.265ビデオ圧縮の長年にわたる調査研究による技術と、の組み合わせが期待されることが明らかとなった。   (Video coding standards led by a number of standards bodies such as MPEG-1, MPEG-2, H.263, MPEG-4 part2, MPEG-4 AVC / H.264, MPEG-4 SVC and MVC, Windows Media To date, enormous advances have been made in video compression technology and science, as indicated by industry-leading proprietary standards such as Video, RealVideo, and On2VP, but with higher quality and higher definition. Increasing consumer demand to access 3D (stereo) anytime, anywhere, and now, through various means such as DVD / BD, radio broadcasting, cable / satellite broadcasting, wired and mobile networks, A higher level of video delivery to a variety of client devices, such as PCs / laptops, televisions, set-top boxes, game consoles, portable media players / devices, smartphones, wearable computing devices, etc. There is a need to deliver by condensation. For standards led by standards bodies, ISO MPEG's recently launched efforts in high-efficiency video coding have contributed new technologies and technologies from years of research into H.265 video compression by the ITU-T standards committee, It became clear that the combination of is expected.

上述の標準はすべて、ビデオフレーム間の動きを補償することによって時間的冗長性を低減することを含む一般的なフレーム間予測符号化構造を採用している。基本的な考え方は、ブロックマッチング法を用いて隣接ピクチャ間の時間依存性を除去するというものである。符号化処理の最初に、符号化されていないビデオシーケンスの各フレームは、I型のフレーム、P型のフレーム、及びB型フレームの3つのカテゴリーに分類される。I型フレームは内部符号化である。すなわち、それ自体が画像を符号化するために使用され、(フレーム内の動き補償技術が適用されてもよい)フレーム間の動き補償技術が使用されないフレームの情報のみが含まれる。   All of the above standards employ a general inter-frame predictive coding structure that includes reducing temporal redundancy by compensating for motion between video frames. The basic idea is to remove the time dependency between adjacent pictures using a block matching method. At the beginning of the encoding process, each frame of the unencoded video sequence is divided into three categories: I-type frames, P-type frames, and B-type frames. Type I frames are inner coded. That is, it contains only information of frames that are themselves used to encode the image and do not use inter-frame motion compensation techniques (intra-frame motion compensation techniques may be applied).

他の2つのタイプのフレームであるPタイプ及びBタイプは、フレーム間の動き補償技術を使用して符号化される。PピクチャとBピクチャの違いは、動き補償に使用される参照ピクチャの時間方向である。P型ピクチャは表示順に以前のピクチャからの情報を利用するが、B型ピクチャは表示順に以前及び将来のピクチャからの情報を利用する。   The other two types of frames, P-type and B-type, are encoded using inter-frame motion compensation techniques. The difference between a P picture and a B picture is the temporal direction of a reference picture used for motion compensation. P-type pictures use information from previous pictures in display order, while B-type pictures use information from previous and future pictures in display order.

P型及びB型のフレームでは、各フレームは、各ピクセルの輝度及び色信号成分の係数によって表されるピクセルのブロックに分割され、各ブロックに1つ又は複数の動きベクトル(B型ピクチャでは将来と過去の符号化されたフレームからの情報を利用することができるため、2つの動きベクトルが各ブロックについて符号化されてもよい)が与えられる。動きベクトル(MV)は、現在のブロックにおける位置から別の、以前符号化されたフレーム(表示順序で過去又は将来のフレームであってもよい)内の類似ブロックにおける位置への空間的変位を表し、それぞれ参照ブロックと参照フレームを含む。残差(「残差信号」とも呼ばれる)を生成するために、参照ブロックと現在のブロックとの間の差が計算される。したがって、インター符号化フレームの各ブロックについては、ブロックのコンテンツ全体ではなく、残差及び動きベクトルのみを符号化する必要がある。ビデオシーケンスのフレーム間のこのような時間的冗長性を除去することにより、ビデオシーケンスを圧縮することができる。 For P-type and B-type frames, each frame is divided into blocks of pixels represented by the coefficients of the luminance and chrominance signal components of each pixel, and each block has one or more motion vectors (for B-type pictures, And two motion vectors may be encoded for each block, since information from previous encoded frames can be utilized). A motion vector (MV) represents a spatial displacement from a position in the current block to a position in a similar block in another, previously encoded frame (which may be a past or future frame in display order). , Respectively, including a reference block and a reference frame. To generate a residual (also called a "residual signal"), the difference between the reference block and the current block is calculated. Therefore, for each block of the inter-coded frame , it is necessary to code only the residuals and motion vectors, not the entire contents of the block. By removing such temporal redundancy between frames of the video sequence, the video sequence can be compressed.

ビデオデータを更に圧縮するために、フレーム内又はフレーム間の予測技術が適用された後、残差信号の係数は、しばしば、(離散コサイン変換(DCT)又は離散サイン変換(DST)を使用して、)空間領域から周波数領域へと変換される。一般的に人間に知覚可能なビデオシーケンスを構成するタイプの画像のような自然発生的な画像の場合、低周波エネルギーは高周波エネルギーよりも常に強い。したがって、周波数領域の残差信号は、空間領域よりも優れたエネルギー圧縮が可能である。順方向変換の後、係数及び動きベクトルを量子化し、エントロピー符号化することができる。   After intra- or inter-frame prediction techniques have been applied to further compress the video data, the coefficients of the residual signal are often calculated using the discrete cosine transform (DCT) or discrete sine transform (DST). ,) From the spatial domain to the frequency domain. In the case of naturally occurring images, such as the types of images that typically make up a human perceptible video sequence, low frequency energy is always stronger than high frequency energy. Therefore, the residual signal in the frequency domain can perform better energy compression than in the spatial domain. After the forward transform, the coefficients and motion vectors can be quantized and entropy coded.

復号化側では、空間的残差信号を復元するために、逆量子化及び逆変換が適用される。これらは、すべてのビデオ圧縮規格における一般的な変換/量子化工程である。元の符号化されていないビデオシーケンスの再現されたバージョンを生成するために、逆予測工程が実施される。   On the decoding side, inverse quantization and inverse transform are applied to recover the spatial residual signal. These are common transformation / quantization steps in all video compression standards. An inverse prediction step is performed to generate a reproduced version of the original unencoded video sequence.

過去の標準では、符号化に使用されるブロックは、一般に16×16画素(多くのビデオ符号化標準ではマクロブロックと呼ばれる)であった。しかし、これらの規格の開発以来、フレームサイズはより大きくなり、多くのデバイスにおいて、2048×1530ピクセル等の「高精細」(又は「HD」)フレームサイズよりも高い表示能力を有するようになった。したがって、これらのフレームサイズの動きベクトルを効率的に符号化するためには、例えば64x64ピクセル等の、より大きなブロックを有することが望まれる。一方、対応する分解能の向上のために、例えば4×4ピクセル等の、比較的小さなスケールで動き予測及び変換を行うことができることが望まれる。   In past standards, the blocks used for encoding were typically 16x16 pixels (called macroblocks in many video encoding standards). However, since the development of these standards, frame sizes have become larger and many devices have higher display capabilities than "high definition" (or "HD") frame sizes, such as 2048 x 1530 pixels. . Therefore, in order to efficiently encode these frame size motion vectors, it is desirable to have larger blocks, such as 64x64 pixels. On the other hand, it is desirable to be able to perform motion prediction and conversion on a relatively small scale, for example, 4 × 4 pixels, for a corresponding improvement in resolution.

動き予測の分解能が増加するにつれて、フレーム毎に、状況に応じてビデオシーケンス全体にわたって、動きベクトルを符号化して送信するのに必要な帯域幅の量が増加している。   As the resolution of motion estimation increases, the amount of bandwidth required to encode and transmit motion vectors, frame by frame, and optionally over a video sequence, increases.

少なくとも1つの実施形態における例示的なビデオ符号化/復号化システムを示す図。FIG. 1 illustrates an example video encoding / decoding system in at least one embodiment. 少なくとも1つの実施形態における例示的な符号化装置の構成要素を例示的に示す図。FIG. 4 is a diagram exemplarily illustrating components of an exemplary encoding device in at least one embodiment. 少なくとも1つの実施形態における例示的な復号化装置の構成要素を例示的に示す図。FIG. 7 is a diagram exemplarily illustrating components of an exemplary decoding device in at least one embodiment. 少なくとも1つの実施形態における例示的なビデオ符号化部のブロック図。FIG. 4 is a block diagram of an example video encoder in at least one embodiment. 少なくとも1つの実施形態における例示的なビデオ復号化部の例示的なブロック図。FIG. 9 is an example block diagram of an example video decoder in at least one embodiment. 少なくとも1つの実施形態における例示的な動きベクトル選択ルーチンを例示的に示す図。FIG. 7 is a diagram exemplarily illustrating an exemplary motion vector selection routine in at least one embodiment. 少なくとも1つの実施形態における例示的な動きベクトル候補生成サブルーチンを例示的に示す図。FIG. 7 is a diagram exemplarily illustrating an exemplary motion vector candidate generation subroutine in at least one embodiment. 少なくとも1つの実施形態における例示的な動きベクトル復元ルーチンを例示的に示す図。FIG. 4 is a diagram exemplarily illustrating an exemplary motion vector restoration routine in at least one embodiment.

以下の詳細な説明は、主として、処理装置、処理装置のメモリ記憶装置、接続されたディスプレイ装置、及び入力装置を含む従来のコンピュータ構成要素による動作工程や象徴的表現について示されている。更に、これらの工程や表現は、遠隔ファイルサーバ、コンピュータサーバ、及びメモリストレージデバイスを含む、異種分散型コンピュータ環境における従来のコンピュータ構成要素を利用することができる。これらの従来の分散型コンピュータ構成要素の各々は、プロセッサによって通信ネットワークを介してアクセス可能である。   The following detailed description primarily illustrates the operation steps and symbolic representations of conventional computer components, including the processing device, the memory storage of the processing device, the connected display device, and the input device. Further, these steps and representations can utilize conventional computer components in a heterogeneous distributed computer environment, including remote file servers, computer servers, and memory storage devices. Each of these conventional distributed computer components is accessible by a processor over a communications network.

「一実施形態において」、「少なくとも1つの実施形態において」、「様々な実施形態において」、「いくつかの実施形態において」等の語句は、本明細書において繰り返し使用される。そのような表現は必ずしも同じ実施形態を指すものではない。「備える」、「有する」、及び「含む」という用語は、文脈によって別段の指示がない限り、同義語である。様々な実施形態では、一般的に上述したように、画像内/画像間の予測や変換符号化において使用される一般的な「ハイブリッド」ビデオ符号化アプローチについて説明されている。   The phrases “in one embodiment,” “in at least one embodiment,” “in various embodiments,” “in some embodiments,” and the like are used repeatedly herein. Such phrases are not necessarily referring to the same embodiment. The terms "comprising," "having," and "including" are synonymous, unless the context indicates otherwise. The various embodiments describe a general "hybrid" video coding approach used in intra / inter-picture prediction and transform coding, as generally described above.

ここで、図面に示された実施形態の詳細な説明について注意する。実施形態は、図面及び関連する説明に関連して説明されているが、当業者であれば、本開示の範囲から逸脱することなく、明示的に図示及び/又は記載されているか否かにかかわらず、図示され、又は記載された特定の実施形態の代わりに、全ての代替、変更、及び均等物を含む代用及び/又は同等の実施形態とすることが可能であることを認識することができる。本明細書に開示された実施形態に範囲に限定されることなく、様々な異なる実施形態や、装置の追加、又は図示された装置の組み合わせを追加又は組み合わせることが可能である。代替の実施形態では、本明細書に開示された実施形態に範囲を限定することなく、追加デバイス又は図示されたデバイスの組み合わせを、追加又は組み合わせることができる。   Attention is now directed to the detailed description of the embodiments illustrated in the drawings. Embodiments are described with reference to the drawings and the associated description, but those skilled in the art may determine whether they are explicitly shown and / or described without departing from the scope of the present disclosure. However, it can be appreciated that instead of the specific embodiment shown or described, alternative and / or equivalent embodiments including all alternatives, modifications, and equivalents are possible. . Without limiting the scope to the embodiments disclosed herein, various different embodiments, additional devices, or combinations of the illustrated devices can be added or combined. In alternative embodiments, additional devices or combinations of the illustrated devices can be added or combined without limiting the scope to the embodiments disclosed herein.

例示的なビデオ符号化/復号化システム
図1は、少なくとも1つの実施形態における例示的なビデオ符号化/復号化システム100を示す。符号化装置200(図2に図示され、以下に説明される)及び復号化装置300(図3に示され、以下に説明される)は、ネットワーク104を用いてデータ通信する。復号化装置200は、記憶域ネットワーク(「SAN」)、高速シリアルバス、及び/又は他の適切な通信技術を介した直接データ接続か、又はネットワーク104(図1に破線で示す)のいずれか一方を介して、符号化されていないビデオソース108とデータ通信する。同様に、復号化装置300は、記憶域ネットワーク(「SAN」)、高速シリアルバス、及び/又は他の適切な通信技術を介した直接データ接続か、又はネットワーク104(図1に破線で示す)のいずれか一方を介して、任意の符号化されたビデオソース112とデータ通信する。いくつかの実施形態において、符号化装置200、復号化装置300、符号化されたビデオソース112、及び/又は符号化されていないビデオソース108は、1つ又は複数の複製及び/又は分散された物理又は論理装置を備える。多くの実施形態では、図示されているよりも多くの符号化装置200、復号化装置300、符号化されていないビデオソース108、及び/又は符号化されたビデオソース112を有することがある。
Exemplary Video Encoding / Decoding System FIG. 1 illustrates an exemplary video encoding / decoding system 100 in at least one embodiment. An encoding device 200 (shown in FIG. 2 and described below) and a decoding device 300 (shown in FIG. 3 and described below) communicate data using the network 104. Decryption device 200 may be either a direct data connection via a storage area network (“SAN”), a high speed serial bus, and / or other suitable communication technology, or network 104 (shown in dashed lines in FIG. 1). Through one, it is in data communication with an unencoded video source 108. Similarly, the decryption device 300 may be a direct data connection via a storage area network ("SAN"), a high speed serial bus, and / or other suitable communication technology, or the network 104 (shown in dashed lines in FIG. 1). In data communication with any encoded video source 112. In some embodiments, encoding device 200, decoding device 300, encoded video source 112, and / or unencoded video source 108 may include one or more replicated and / or distributed It has physical or logical devices. In many embodiments, there may be more encoding devices 200, decoding devices 300, unencoded video sources 108, and / or encoded video sources 112 than shown.

様々な実施形態では、符号化装置200は、一般に、例えば復号化装置300からネットワーク104を介して要求を受け入れるとともに、それに応じて応答を提供するネットワーク化されたコンピュータ装置である。様々な実施形態において、復号化装置300は、携帯電話、時計や眼鏡や他のウェアラブルコンピュータ装置、専用メディアプレーヤ、コンピュータタブレット、自動車ヘッド部、AVOD(audio-video on demand)システム、専用メディアコンソール、ゲーム装置、「セットトップボックス」、デジタルビデオレコーダ、テレビジョン、又は汎用コンピュータ等の外形要素を有するネットワーク化されたコンピュータ装置であってもよい。様々な実施形態において、ネットワーク104は、インターネット、1つ又は複数のローカルエリアネットワーク(「LANs」)、1つ又は複数のワイドエリアネットワーク(「WANs」)、セルラー方式のデータネットワーク、及び/又は他のデータネットワークを含む。ネットワーク104は、様々な点で、有線及び/又は無線ネットワークとすることができる。   In various embodiments, encoding device 200 is generally a networked computer device that accepts requests, for example, from decoding device 300 over network 104 and provides a response accordingly. In various embodiments, the decoding device 300 includes a mobile phone, a watch, glasses, or other wearable computing device, a dedicated media player, a computer tablet, a car head, an audio-video on demand (AVOD) system, a dedicated media console, It may be a networked computer device having external components such as a game device, a "set-top box", a digital video recorder, a television, or a general-purpose computer. In various embodiments, network 104 may include the Internet, one or more local area networks (“LANs”), one or more wide area networks (“WANs”), a cellular data network, and / or Including data networks. Network 104 can be a wired and / or wireless network in various respects.

例示的な符号化装置
図2には、例示的な符号化装置200の構成要素が示されている。いくつかの実施形態では、符号化装置は、図2に示すものよりも多くの構成要素を含む。しかしながら、例示的な実施形態を開示するために、これらの一般的な従来の構成要素のすべてを示す必要はない。図2に示すように、例示的な符号化装置200は、ネットワーク104等のネットワークに接続するネットワークインターフェース204を含む。例示的な符号化装置200はまた、処理装置208、メモリ212、任意のユーザ入力装置214(例えば英数字キーボード、キーパッド、マウス又は他のポインティングデバイス、タッチスクリーン、及び/又はマイクロフォン)及び任意のディスプレイ216を含み、これらはすべてバス220を介してネットワークインターフェース204と相互接続される。メモリ212は、一般にRAM、ROM、及びディスクドライブ、フラッシュメモリ等の永久大容量記憶装置を含む。
Exemplary Encoding Device FIG. 2 shows components of an exemplary encoding device 200. In some embodiments, the encoding device includes more components than those shown in FIG. However, not all of these general conventional components need be shown to disclose the illustrative embodiments. As shown in FIG. 2, the exemplary encoding device 200 includes a network interface 204 that connects to a network, such as the network 104. The example encoding device 200 also includes a processing device 208, a memory 212, an optional user input device 214 (eg, an alphanumeric keyboard, keypad, mouse or other pointing device, touch screen, and / or microphone) and any It includes a display 216, all of which are interconnected with the network interface 204 via a bus 220. Memory 212 typically includes RAM, ROM, and permanent mass storage such as disk drives, flash memory, and the like.

例示的な符号化装置200のメモリ212は、オペレーティングシステム224や、動きベクトル選択ルーチン600(図6を参照して以下に説明する)を実施するためにソフトウェアにより実施されるフレーム間ビデオ符号化部400(図4を参照して以下に説明する)等の多数のソフトウェアサービスのプログラムコードを備える。メモリ212はまた、例えば、映画及び/又はテレビの連続小説のような音声/視覚に関するメディア作品の符号化されていないコピーを表すビデオデータファイル(図示せず)を備える。これらの及び他のソフトウェア構成要素は、フロッピーディスク、テープ、DVD/CD-ROMドライブ、メモリカード等の非一時的なコンピュータ読取メディア232に関連する駆動機構(図示せず)を使用して、符号化装置200のメモリ212に読み込まれてもよい。例示的な符号化装置200について説明したが、符号化装置は、ネットワーク120と通信可能であり、ビデオ符号化部400によって実施される例示的なソフトウェアや動きベクトル選択ルーチン600等のビデオ符号化のソフトウェアを実施する命令を実施可能な多数のネットワーク化されたコンピュータ装置群のうちのいくつかのコンピュータ装置であってもよい。   The memory 212 of the exemplary encoder 200 includes an operating system 224 and an inter-frame video encoder implemented by software to implement the motion vector selection routine 600 (described below with reference to FIG. 6). A number of software service program codes, such as 400 (described below with reference to FIG. 4). The memory 212 also comprises a video data file (not shown) representing an unencoded copy of the audio / visual media work, such as a movie and / or television series. These and other software components are encoded using a drive (not shown) associated with a non-transitory computer readable medium 232, such as a floppy disk, tape, DVD / CD-ROM drive, memory card, or the like. May be read into the memory 212 of the conversion apparatus 200. Although the exemplary encoding device 200 has been described, the encoding device can communicate with the network 120 and implement video coding, such as exemplary software or a motion vector selection routine 600 implemented by the video encoding unit 400. The computer device may be any of a number of networked computer devices capable of executing instructions that implement software.

動作中、オペレーティングシステム224は、符号化装置200のハードウェアや他のソフトウェア資源を管理し、ソフトウェアにより実施されるフレーム間ビデオ符号化部400等のソフトウェアアプリケーションの一般的なサービスを提供する。ネットワークインターフェース204を介したネットワーク通信や、入力装置214を介したデータ受信、ディスプレイ216を介したデータ出力、ソフトウェアにより実施されるフレーム間ビデオ符号化部400等の様々なソフトウェアアプリケーションのためのメモリ212の割り当て等のハードウェア機能のため、オペレーティングシステム224は、符号化装置により実施されるソフトウェアとハードウェアとの間の仲介者として機能する。   In operation, the operating system 224 manages the hardware and other software resources of the encoding device 200 and provides general services of software applications such as the inter-frame video encoder 400 implemented by software. Memory 212 for various software applications such as network communication via the network interface 204, data reception via the input device 214, data output via the display 216, software-implemented inter-frame video encoder 400, etc. Due to hardware functions such as assignment of the operating system 224, the operating system 224 acts as an intermediary between software and hardware implemented by the encoding device.

いくつかの実施形態では、符号化装置200は、例えば高速シリアルバス等、符号化されていないビデオソース108と通信する専用の符号化されていないビデオインターフェース236を更に含む。いくつかの実施形態では、符号化装置200は、ネットワークインターフェース204を介して符号化されていないビデオソース108と通信する。他の実施形態では、符号化されていないビデオソース108は、メモリ212又はコンピュータ読取メディア232に存在する。   In some embodiments, the encoding device 200 further includes a dedicated unencoded video interface 236 that communicates with the unencoded video source 108, for example, a high-speed serial bus. In some embodiments, encoding device 200 communicates with unencoded video source 108 via network interface 204. In other embodiments, unencoded video source 108 resides in memory 212 or computer readable media 232.

符号化装置200として、一般に従来の汎用コンピュータ装置に準拠する例示的な符号化装置200について説明したが、符号化装置200は、例えばビデオ記録装置、ビデオ処理及び/又はアクセラレータ、パーソナルコンピュータ、ゲーム本体、セットトップボックス、携帯情報端末又はウェアラブルコンピュータ装置、スマートフォン、又は他の適切なデバイス等のビデオ符号化が可能な多数の装置群であってもよい。   Although the encoding device 200 has been described with reference to an exemplary encoding device 200 that generally conforms to a conventional general-purpose computer device, the encoding device 200 may include, for example, a video recording device, a video processing and / or accelerator, a personal computer, and a game main unit. , A set-top box, a personal digital assistant or a wearable computer device, a smart phone, or any other suitable device.

符号化装置200は、例えば、オンデマンドメディアサービス(図示せず)のために用いられてもよい。少なくとも1つの例示的な実施形態では、オンデマンドメディアサービスは、ビデオコンテンツ等のメディア作品のデジタルコピーを、作品毎及び/又は購読ベースでユーザに供給するオンデマンドメディアストアの促進のために符号化装置200を管理する。オンデマンドメディアサービスは、符号化されていないビデオソース108からそのようなメディア作品のデジタルコピーを取得する。   Encoding device 200 may be used, for example, for an on-demand media service (not shown). In at least one exemplary embodiment, an on-demand media service encodes for facilitating an on-demand media store that provides digital copies of media works, such as video content, to users on a per-works and / or subscription basis. The device 200 is managed. The on-demand media service obtains digital copies of such media works from unencoded video sources 108.

例示的なデコード装置
図3には、例示的な復号化装置300の構成要素が示されている。いくつかの実施形態では、復号化装置は、図3に示すものよりも多くの構成要素を含む。しかしながら、例示的な実施形態を開示するために、これらの一般的な従来のコンポーネントのすべてを示す必要はない。図3に示すように、例示的な復号化装置300は、ネットワーク104等のネットワークに接続するネットワークインターフェース304を含む。例示的な復号化装置300はまた、処理装置308、メモリ312、任意のユーザ入力装置314(例えば英数字キーボード、キーパッド、マウス又は他のポインティングデバイス、タッチスクリーン、及び/又はマイクロフォン)及び任意のディスプレイ316、及び任意のスピーカ318を含み、これらはすべてバス320を介してネットワークインターフェース304と相互接続される。メモリ312は、一般には、RAM、ROM、及びディスクドライブ、フラッシュメモリ等の永久大容量記憶装置を含む。
Exemplary Decoding Device FIG. 3 shows components of an exemplary decoding device 300. In some embodiments, the decoding device includes more components than those shown in FIG. However, not all of these general conventional components need be shown to disclose the illustrative embodiments. As shown in FIG. 3, the exemplary decoding device 300 includes a network interface 304 that connects to a network, such as the network 104. The example decoding device 300 also includes a processing device 308, a memory 312, an optional user input device 314 (eg, an alphanumeric keyboard, keypad, mouse or other pointing device, touch screen, and / or microphone) and any It includes a display 316 and optional speakers 318, all interconnected with a network interface 304 via a bus 320. Memory 312 typically includes RAM, ROM, and permanent mass storage such as disk drives, flash memory, and the like.

例示的な復号化装置300のメモリ312は、オペレーティングシステム224や、動きベクトル復元ルーチン800(図8を参照して以下に説明する)を実施するためにソフトウェアにより実施されるビデオ復号化部500(図5を参照して以下に説明する)等の多数のソフトウェアサービスのプログラムコードを備える。メモリ312はまた、例えば、映画及び/又はテレビの連続小説のような音声/視覚に関するメディア作品の符号化されたコピーを表すビデオデータファイル(図示せず)を備える。これらの及び他のソフトウェア構成要素は、フロッピーディスク、テープ、DVD/CD-ROMドライブ、メモリカード等の非一時的なコンピュータ読取メディア332に関連する駆動機構(図示せず)を使用して、復号化装置300のメモリ312に読み込まれていてもよい。例示的な復号化装置300について説明したが、復号化装置は、ネットワーク120と通信可能であり、ビデオ復号化部500によって実施される例示的なソフトウェアやメッセージ抽出ルーチン700等を実施可能な多数のネットワーク化されたコンピュータ装置群のうちのいくつかのコンピュータ装置であってもよい。   The memory 312 of the exemplary decoding device 300 includes an operating system 224 and a video decoding unit 500 (implemented by software to implement a motion vector restoration routine 800 (described below with reference to FIG. 8)). (Described below with reference to FIG. 5). The memory 312 also includes a video data file (not shown) that represents an encoded copy of the audio / visual media work, such as a movie and / or television series. These and other software components are decrypted using a drive (not shown) associated with a non-transitory computer readable medium 332 such as a floppy disk, tape, DVD / CD-ROM drive, memory card, or the like. May be read into the memory 312 of the optimization device 300. Although the exemplary decoding device 300 has been described, the decoding device may communicate with the network 120 and may implement a number of example software or message extraction routines 700 implemented by the video decoding unit 500, etc. It may be some computer device of a networked computer device group.

動作中、オペレーティングシステム324は、復号化装置300のハードウェアや他のソフトウェア資源を管理し、ソフトウェアにより実施されるビデオ復号化部500等のソフトウェアアプリケーションの一般的なサービスを提供する。ネットワークインターフェース304を介したネットワーク通信や、入力装置314を介したデータ受信、ディスプレイ316や任意のスピーカ318を介したデータ出力、メモリ312の割り当て等のハードウェア機能のため、オペレーティングシステム324は、符号化装置により実施されるソフトウェアとハードウェアとの間の仲介者として機能する。   In operation, operating system 324 manages the hardware and other software resources of decoding device 300 and provides general services for software applications, such as video decoding unit 500, implemented by software. For hardware functions such as network communication via the network interface 304, data reception via the input device 314, data output via the display 316 or any speaker 318, allocation of memory 312, the operating system 324 Functions as an intermediary between software and hardware implemented by the encryption device.

いくつかの実施形態では、復号化装置300は、例えば高速シリアルバス等、符号化されたビデオソース116と通信する任意の符号化されたビデオインターフェース336を更に含む。いくつかの実施形態では、復号化装置300は、ネットワークインターフェース304を介して符号化されたビデオソース116と通信する。他の実施形態では、符号化されたビデオソース116は、メモリ312又はコンピュータ読取メディア332に存在する。   In some embodiments, the decoding device 300 further includes an optional encoded video interface 336 that communicates with the encoded video source 116, for example, a high-speed serial bus. In some embodiments, the decoding device 300 communicates with the encoded video source 116 via the network interface 304. In other embodiments, encoded video source 116 resides in memory 312 or computer readable media 332.

復号化装置300として、一般に従来の汎用コンピュータ装置に準拠する例示的な復号化装置300について説明したが、復号化装置300は、例えばビデオ記録装置、ビデオ処理及び/又はアクセラレータ、パーソナルコンピュータ、ゲーム本体、セットトップボックス、携帯情報端末又はウェアラブルコンピュータ装置、スマートフォン、又は他の適切なデバイス等のビデオ符号化が可能な多数の装置群であってもよい。   Although the decoding device 300 has been described as an exemplary decoding device 300 that generally conforms to a conventional general-purpose computer device, the decoding device 300 may be, for example, a video recording device, a video processing and / or accelerator, a personal computer, a game console, or the like. , A set-top box, a personal digital assistant or a wearable computer device, a smart phone, or any other suitable device.

復号化装置300は、例えば、オンデマンドメディアサービスのために用いられてもよい。少なくとも1つの例示的な実施形態では、オンデマンドメディアサービスは、ビデオコンテンツ等のメディア作品のデジタルコピーを、作品毎及び/又は購読ベースで、復号化装置300を操作するユーザに供給する。復号化装置は、ネットワーク104を介して、例えば符号化装置200等の符号化されていないビデオソース108から、そのようなメディア作品のデジタルコピーを取得する。   The decoding device 300 may be used, for example, for an on-demand media service. In at least one exemplary embodiment, the on-demand media service provides digital copies of media works, such as video content, on a work-by-work and / or subscription basis to users operating the decryption device 300. The decoding device obtains a digital copy of such media work via the network 104 from an uncoded video source 108, such as the coding device 200, for example.

ソフトウェアにより実施されるフレーム間ビデオ符号化部
図4は、少なくとも1つの実施形態による向上された動きベクトル選択予測技術が採用され、ソフトウェアにより実施されるフレーム間ビデオ符号化部400(以下、「符号化部400」という)の一般的な機能ブロック図を示す。ビデオシーケンスにおける符号化されていない1つ又は複数のビデオフレーム(vidfrms)が表示順にシーケンサ404に提供される。
FIG. 4 illustrates an inter-frame video encoder 400 (hereinafter “code”) that employs an enhanced motion vector selection and prediction technique according to at least one embodiment and is implemented by software. A general functional block diagram of the “modification unit 400” is shown. One or more uncoded video frames (vidfrms) in the video sequence are provided to sequencer 404 in display order.

シーケンサ404は、各符号化されていないビデオフレームに予測符号化ピクチャタイプ(例えば、I、P又はB)を割り当て、フレーム、又は、フレーム配列におけるフレーム群の順序を、符号化順序(例えばI-タイプのフレームとそれに続くPタイプのフレーム、続いてBタイプのフレーム)に従って再配列する。順序付けされた符号化されていないビデオフレーム(seqfrms)は、符号化順にブロックインデックス化部408に入力される。   The sequencer 404 assigns a predictive coded picture type (e.g., I, P or B) to each uncoded video frame, and reorders the frames or frames in a frame array into a coding order (e.g., I- Rearrange according to a type frame, followed by a P type frame, followed by a B type frame). The ordered uncoded video frames (seqfrms) are input to the block indexing unit 408 in the coding order.

順序付けされた符号化されていないビデオフレーム(seqfrms)のそれぞれについて、ブロックインデックス化部408は、現在のフレーム(例えば64×64画素)の最大符号化ブロック(「LCB」)サイズを決定し、符号化されていないフレームを符号化ブロック(cblks)の列に分割する。前記フレーム内の符号化ブロックは、それぞれ大きさが異なり、例えば現在のフレームにおけるLCBサイズは、4×4ピクセルである。   For each ordered uncoded video frame (seqfrms), block indexing unit 408 determines the largest coded block (“LCB”) size of the current frame (eg, 64 × 64 pixels), and The unencoded frames are divided into columns of encoded blocks (cblks). The coding blocks in the frame have different sizes, for example, the LCB size in the current frame is 4 × 4 pixels.

各符号化ブロックは、差分部412に一度に1つずつ入力され、以前符号化された符号化ブロックから生成された対応する予測信号ブロック(pred)との差が計算される。符号化ブロック(cblks)は、動き推定部416(以下に説明する)に提供される。差分部412で差が計算された後、得られる残差信号(res)は、変換部420によって周波数領域表現に順変換され、変換係数(tcof)のブロックが得られる。次に、変換係数(tcof)のブロックが量子化部424に送られ、量子化係数(qcf)のブロックが生成され、エントロピー符号化部428と局所復号化ループ430の両方に送られる。   Each coded block is input to the difference unit 412 one at a time, and the difference from the corresponding prediction signal block (pred) generated from the previously coded block is calculated. The coded blocks (cblks) are provided to a motion estimator 416 (described below). After the difference is calculated by the difference unit 412, the obtained residual signal (res) is forward-transformed into a frequency domain expression by the conversion unit 420, and a block of the conversion coefficient (tcof) is obtained. Next, the block of the transform coefficient (tcof) is sent to the quantization unit 424, and a block of the quantization coefficient (qcf) is generated and sent to both the entropy coding unit 428 and the local decoding loop 430.

局所復号化ループ430の開始時に、逆量子化部432は、逆量子化残差ブロック(res')を生成するために、変換係数(tcof ')のブロックを逆量子化し、それらを逆変換部436に渡す。加算部440において、動き補償予測部442からの予測ブロック(pred)が、局所復号化ブロック(rec)を生成するために、逆量子化残差ブロック(res ')に加えられる。局所復号化ブロック(rec)は、フレームアセンブリ部及びデブロックフィルタ処理部444に送られ、ブロック化が低減されるとともに復元フレーム(recd)に組み立てられ、動き推定部416及び動き補償予測部442の参照フレームとして使用される。   At the start of the local decoding loop 430, the inverse quantization unit 432 inversely quantizes the block of transform coefficients (tcof ') and generates them by the inverse transformation unit to generate an inverse quantization residual block (res'). Pass to 436. In the adding unit 440, the prediction block (pred) from the motion compensation prediction unit 442 is added to the inverse quantization residual block (res ′) in order to generate a locally decoded block (rec). The locally decoded block (rec) is sent to the frame assembling unit and the deblocking filter processing unit 444, where the blocking is reduced and the restored frame (recd) is assembled. Used as a reference frame.

エントロピー符号化部428は、量子化変換係数(qcf)、差分動きベクトル(dmv)、及び他のデータを符号化し、符号化ビデオビットストリーム448を生成する。符号化されていないビデオシーケンスの各フレームでは、符号化ビデオビットストリーム448は、符号化されたピクチャデータ(例えば、符号化され、かつ、量子化された変換係数(qcf)及び差分動きベクトル(dmv))及び符号化されたフレームヘッダ(例えば、現フレームのLCBサイズ等の構文情報)を含む。   The entropy encoding unit 428 encodes the quantized transform coefficient (qcf), the differential motion vector (dmv), and other data, and generates an encoded video bit stream 448. For each frame of the uncoded video sequence, the coded video bitstream 448 may include coded picture data (eg, coded and quantized transform coefficients (qcf) and differential motion vectors (dmv). )) And an encoded frame header (eg, syntax information such as the LCB size of the current frame).

動き推定部416の機能では、図6及び図7を参照して以下で詳細に説明するように、少なくとも1つの実施形態によれば、P型フレーム又はB型フレームにおける各符号化ブロックは、すなわち、現在の符号化ブロックにおける残差は、同じフレーム(すべての符号化ブロックがIタイプである場合と同様に)において以前符号化ブロック(「参照ブロック」)に基づいて生成され、又は、インター符号化、すなわち、現在の符号化ブロックにおける残差は、1つ又は複数の以前符号化された符号化フレーム(「参照フレーム」)からの1つ又は複数の参照ブロックに基づいて生成される。図示の実施形態では、インター符号化された符号化ブロックは、任意の適切な方法で処理される。 According to the function of the motion estimator 416, as described in detail below with reference to FIGS. 6 and 7, according to at least one embodiment, each coded block in a P-type or B-type frame is: , residual in the current encoding block is generated based on the same frame previously coded blocks in the (all coded blocks as if it is I-type) ( "reference block"), or, inter-coded , i.e., the residual of the current encoding block is generated based on one or more reference blocks from one or more previous encoded encoded frame (the "reference frame"). In the illustrated embodiment, the inter-encoded block is processed in any suitable manner.

少なくとも1つの実施形態によれば、インター符号化された符号化ブロックについて、動き推定部416は、符号化ブロックの動きベクトル(又はBタイプのフレームの動きベクトル群)を決定するために、少なくとも3つの符号化モード、つまり、スキップ符号化モード、直接符号化モード、及びインター符号化モードのうちの1つを選択する。 According to at least one embodiment, for an inter-coded coded block, the motion estimator 416 determines at least three motion vectors for the coded block (or group of B-type frames). One of the three coding modes is selected: a skip coding mode, a direct coding mode, and an inter coding mode .

インター符号化モード
インター符号化モードで符号化される符号化ブロックでは、動き推定部416は、各符号化ブロックを、例えば4×4ピクセル、8×8ピクセル、16×16ピクセル、32×32ピクセル、又は64×64ピクセルの予測ブロックに分割する。例えば、64×64の符号化ブロックは、16個の16×16予測ブロック、4個の32×32予測ブロック、又は2個の32×32予測ブロックと8個の16×16予測ブロックとに分割することができる。次に、動き推定部416は、適切な参照ブロックを決定し、予測ブロックから参照ブロックまでの相対的空間変位を決定することによって、各予測ブロックに対して動きベクトル(MV calc)を計算する。
Inter coding mode
For coding blocks that are coded in the inter coding mode , the motion estimator 416 converts each coding block into, for example, 4 × 4 pixels, 8 × 8 pixels, 16 × 16 pixels, 32 × 32 pixels, or 64 × Divide into 64 pixel prediction blocks. For example, a 64 × 64 coded block is divided into 16 16 × 16 prediction blocks, 4 32 × 32 prediction blocks, or 2 32 × 32 prediction blocks and 8 16 × 16 prediction blocks. can do. Next, the motion estimator 416 calculates a motion vector (MV calc) for each prediction block by determining an appropriate reference block and determining a relative spatial displacement from the prediction block to the reference block.

少なくとも1つの実施形態の1つの態様によれば、符号化の効率を上げるために、計算された動きベクトル(MV calc)は、計算された動きベクトル(MV calc)から動きベクトル予測子(MV pred)を減算することによって符号化されて、動きベクトル差分(ΔMV)が生成される。例えば、計算された動きベクトル(MV calc)が(5, -1)(すなわち、以前符号化されたフレームからの参照ブロックは、現在のフレームにおける現在の予測ブロックに対して、5列右及び1行上に位置している)であり、動きベクトル予測子が(5、0)(すなわち、以前符号化されたフレームからの参照ブロックは、現在のフレームにおける現在の予測ブロックに対して、5列右及び同じ行に位置している)場合、動きベクトル差分(ΔMV)は、以下のようになる。
MV calc−MV pred=(5,-1)−(5,0)=(0,-1)=ΔMV
According to one aspect of at least one embodiment, to increase coding efficiency, the calculated motion vector (MV calc) is calculated from the calculated motion vector (MV calc) by using a motion vector predictor (MV pred). ) To generate a motion vector difference (ΔMV). For example, if the calculated motion vector (MV calc) is (5, -1) (ie, the reference block from the previously encoded frame is 5 columns to the right and 1 column to the current prediction block in the current frame). And the motion vector predictor is (5,0) (ie, the reference block from the previously encoded frame is 5 columns relative to the current prediction block in the current frame). (Located on the right and in the same row), the motion vector difference (ΔMV) is as follows:
MV calc−MV pred = (5, -1) − (5,0) = (0, -1) = ΔMV

動きベクトル予測子(MV pred)が計算された動きベクトル(MV calc)に近いほど、動きベクトル差分(ΔMV)の値は小さくなる。したがって、動きベクトルを正確に予測し、計算された動きベクトルではなく動きベクトル差分を符号化することで、ビデオシーケンス全体にわたって、必要な情報が大幅に少なくなる。なお、この予測は、現在の予測ブロックの内容とは無関係であり、かつ、複合化装置側において再現可能なものである。   The closer the motion vector predictor (MV pred) is to the calculated motion vector (MV calc), the smaller the value of the motion vector difference (ΔMV). Thus, by accurately predicting motion vectors and encoding the motion vector differences instead of the calculated motion vectors, much less information is needed throughout the video sequence. Note that this prediction is irrelevant to the content of the current prediction block and is reproducible on the multifunction peripheral side.

少なくとも1つの実施形態の一態様によれば、動き推定部416は、動きベクトル予測子(MV pred)を得るために様々な技術を使用することができる。例えば、動きベクトル予測子は、現在のフレームの予測ブロックにおいて以前符号化された複数の動きベクトルの中間値を計算することによって取得することができる。また、例えば、動きベクトル予測子は、現在のブロックに対して同じ列及び1行上に位置する参照ブロック(RB a)における動きベクトルや、現在の予測ブロックに対して1例右及び1行下に位置する参照ブロック(RB b)の動きベクトル、及び現在のブロックに対して1列左及び同じ行の参照ブロック(RB c)のように、現在の予測ブロックの空間近傍において以前符号化された複数の参照ブロックの中間値であってもよい。   According to one aspect of at least one embodiment, motion estimator 416 may use various techniques to obtain a motion vector predictor (MV pred). For example, a motion vector predictor can be obtained by calculating an intermediate value of a plurality of previously encoded motion vectors in a prediction block of a current frame. Also, for example, a motion vector predictor is a motion vector in a reference block (RBa) located in the same column and one row above the current block, or one example right and one row below the current prediction block. , And the motion vector of the reference block (RB b) located on the left side of the current block and the reference block (RB c) in the same row as the current block, which have been previously encoded in the spatial neighborhood of the current prediction block It may be an intermediate value of a plurality of reference blocks.

上述したように、少なくとも1つの実施形態の一態様によれば、動き推定部416は、インター符号化モードにおいて予測ブロックの動きベクトル予測子を提供するために、追加技術、又は代替技術を使用することができる。例えば、動きベクトル予測子を提供する他の技術では、現在のブロックに対して同じ列及び1行上に位置する参照ブロック(RB a)における動きベクトルや、現在の予測ブロックに対して1例右及び1行下に位置する参照ブロック(RB b)の動きベクトル、及び現在のブロックに対して1列左及び同じ行の参照ブロック(RB c)のように、現在の予測ブロックの空間近傍において以前符号化された複数の参照ブロックの平均値に決定する。 As described above, according to an aspect of at least one embodiment, the motion estimator 416 uses additional or alternative techniques to provide a motion vector predictor for a predicted block in an inter-coding mode . be able to. For example, in other techniques for providing a motion vector predictor, a motion vector in a reference block (RBa) located on the same column and one row for the current block, or one example for the current prediction block And the motion vector of the reference block (RB b) located one row below, and the previous one in the spatial neighborhood of the current prediction block, like the reference block (RB c) one column to the left of the current block and the same row The average value of a plurality of encoded reference blocks is determined.

少なくとも1つの実施形態の一態様によれば、符号化効率を高めるために、符号化部400は、現在のフレームのピクチャヘッダ(又は現在の予測ブロックの予測ブロックヘッダ)内に選択された動きベクトル予測方法(SMV-PM)フラグを配置することによって、現在の予測ブロックの符号化に使用可能な技術のうちのどれが使用されたかを示すことができる。例えば、少なくとも1つの実施形態では、SMV-PMフラグは、2つの可能な値を有する1ビットであり、1つの可能な値は、動きベクトル予測子が上述の中間値化技術を用いて得られたことを示し、2番目の可能な値は、動きベクトル予測子が代替技術を用いて得られたことを示す。   According to an aspect of at least one embodiment, to increase coding efficiency, the coding unit 400 may include a motion vector selected in a picture header of a current frame (or a prediction block header of a current prediction block). Placing a prediction method (SMV-PM) flag may indicate which of the available techniques was used to encode the current prediction block. For example, in at least one embodiment, the SMV-PM flag is one bit with two possible values, where one possible value is obtained when the motion vector predictor is obtained using the intermediate value technique described above. And the second possible value indicates that the motion vector predictor was obtained using an alternative technique.

インター符号化モードによって符号化された符号化ブロックでは、動きベクトルと残差との両方が符号化されてビットストリームに含まれる。 In a coded block coded according to the inter coding mode , both the motion vector and the residual are coded and included in the bit stream.

スキップ符号化モードと直接符号化モード
スキップ符号化モード又は直接符号化モードで符号化される符号化ブロックの場合、動き推定部416は、符号化ブロック全体を対応する予測ブロック(PB)として使用する。
Skip coding mode and direct coding mode In the case of a coded block coded in the skip coding mode or the direct coding mode, the motion estimator 416 uses the entire coded block as a corresponding prediction block (PB). .

少なくとも1つの実施形態の一態様によれば、スキップ符号化及び直接符号化モードでは、予測ブロック(PB)のために計算された動きベクトル(MV calc)を決定するのではなく、動き推定部416は、動きベクトル候補の順序付きリストを生成するために、図7を参照して後述する所定の方法を使用する。例えば、現在の予測ブロック(PB cur)に対して、動きベクトル候補の順序付きリストは、現在のフレームの他のブロック、これを「参照ブロック」(RBs)という、を符号化するために以前使用された動きベクトルから構成される。   According to an aspect of at least one embodiment, in skip coding and direct coding modes, rather than determining a motion vector (MV calc) calculated for a predicted block (PB), a motion estimator 416. Uses a predetermined method described below with reference to FIG. 7 to generate an ordered list of motion vector candidates. For example, for the current prediction block (PB cur), an ordered list of motion vector candidates may be used previously to encode another block of the current frame, called "reference blocks" (RBs). It consists of the motion vector obtained.

少なくとも1つの実施形態の一態様によれば、動き推定部416は、現在の予測ブロック(PB cur)を符号化する順序付けリストから最良の動きベクトル候補(MVC)を選択する。動きベクトル候補の順序付きリストを生成する工程が復号化装置側で再現可能である場合、動きベクトル自体ではなく、動きベクトル候補の順序付きリストにおける選択された動きベクトル(MV sel)のインデックスのみが符号化されたビットストリームに含まれてもよい。実際の動きベクトルではなくインデックス値を符号化することで、ビデオシーケンス全体にわたって、必要な情報が大幅に少なくなる。   According to an aspect of at least one embodiment, the motion estimator 416 selects the best candidate motion vector (MVC) from an ordered list that encodes the current prediction block (PB cur). If the step of generating an ordered list of motion vector candidates is reproducible on the decoding device side, only the index of the selected motion vector (MV sel) in the ordered list of motion vector candidates is not the motion vector itself. It may be included in the encoded bit stream. By encoding the index values rather than the actual motion vectors, much less information is needed throughout the video sequence.

少なくとも1つの実施形態の一態様によれば、動きベクトル候補リストを生成するために選択された動きベクトルは、好ましくは、既知の動きベクトルを有する3つの参照ブロック(RB a、RB b、RB c)から取得され、現在の予測ブロック(PB cur)及び/又は他の参照ブロック(RB)に共有される。例えば、第1の参照ブロック(RB a)は現在の予測ブロック(PB cur)の真上に位置し、第2の参照ブロック(RB b)は第1の参照ブロック(RB a)の右側に位置し、第3の参照ブロック(RB c)は、現在の予測ブロック(RB c)の左側に位置する。しかしながら、現在の予測ブロックに対する参照ブロックの特定位置は、それらが予め定義されており、下流の復号化装置がどこに位置するかを知ることができるのであれば、特に重要ではない。   According to an aspect of at least one embodiment, the motion vectors selected to generate the motion vector candidate list are preferably three reference blocks (RBa, RBb, RBc) having known motion vectors. ) And shared by the current prediction block (PB cur) and / or other reference blocks (RB). For example, the first reference block (RB a) is located directly above the current prediction block (PB cur), and the second reference block (RB b) is located to the right of the first reference block (RB a). However, the third reference block (RB c) is located to the left of the current prediction block (RB c). However, the specific position of the reference block with respect to the current prediction block is not particularly important as long as they are predefined and it is possible to know where the downstream decoding device is located.

少なくとも1つの実施形態の一態様によれば、3つ全ての参照ブロックが既知の動きベクトルを有する場合、現在の予測ブロック(PB cur)の動きベクトル候補リストにおける第1の動きベクトル候補(MVC 1)は、第1の参照ブロック(RB a)からの動きベクトル(MV a)(B型フレームでは動きベクトル群)であり、第2の動きベクトル候補(MVC 2)は、第2の参照ブロック(RB b)からの動きベクトル(MV b)(又は動きベクトル群)であり、第3の動きベクトル候補(MVC 3)は、第3の参照ブロック(RB c)からの動きベクトル(MV c)(又は動きベクトル群)である。そのため、動きベクトル候補リストは、(MV a、MV b、MV c)となる。   According to an aspect of at least one embodiment, if all three reference blocks have known motion vectors, the first motion vector candidate (MVC 1) in the motion vector candidate list of the current prediction block (PB cur). ) Is a motion vector (MVa) from the first reference block (RB a) (a group of motion vectors in the B-type frame), and the second motion vector candidate (MVC 2) is a second reference block (MVC 2). RB b) (MV b) (or a group of motion vectors) from the third reference block (RB c), and the motion vector (MV c) from the third reference block (RB c). Or a group of motion vectors). Therefore, the motion vector candidate list is (MVa, MVb, MVc).

しかし、例えば、特定の参照ブロックに対して予測情報が利用可能でないか、又は現在の予測ブロック(PB cur)が現在のフレームの最上列、左端列又は右端列に位置する等の理由により、いずれかの参照ブロック(RBs)が利用可能な動きベクトルを持たない場合、その動きベクトル候補は省かれて、次の動きベクトル候補がその位置につき、ゼロ値動きベクトル(0,0)が残りの候補レベルとして代用される。例えば、動きベクトルがRB bに対して利用可能でない場合、動きベクトル候補リストは、(MV a、MV c、(0,0))となる。   However, for example, either because the prediction information is not available for a particular reference block, or because the current prediction block (PB cur) is located in the top row, left end row, or right end row of the current frame, etc. If one of the reference blocks (RBs) does not have an available motion vector, the motion vector candidate is omitted, the next motion vector candidate is located at that position, and the zero-value motion vector (0,0) is the remaining candidate level. Be substituted as For example, when a motion vector is not available for RBb, the motion vector candidate list is (MVa, MVc, (0,0)).

少なくとも1つの実施形態において、動きベクトル候補の有効な組み合わせを示す動きベクトル候補リストの組み合わせの全セットは、表1に示される通りである。

Figure 0006678357
In at least one embodiment, the full set of combinations of motion vector candidate lists indicating valid combinations of motion vector candidates is as shown in Table 1.
Figure 0006678357

次に、動き推定部416は、動きベクトル候補を評価し、現在の予測ブロックに対する選択された動きベクトルとして使用される最良の動きベクトル候補を選択する。下流の復号化装置が、前記予測ブロックの動きベクトル候補の順序付きリストがどのように生成されたかを知っていれば、この計算は、現在の予測ブロックのコンテンツを知らない復号化装置側で再現可能であることに留意されたい。したがって、動きベクトル自体ではなく、例えば、現在の予測ブロックにおける予測ブロックヘッダ内に動きベクトル選択フラグを設定する等して、動きベクトル候補リストから選択された動きベクトルのインデックスのみが、符号化されたビットストリームに含まれる必要があり、そして、実際の動きベクトルではなくインデックス値を符号化することによって、ビデオシーケンス全体にわたって、必要な情報が大幅に少なくなる。   Next, the motion estimator 416 evaluates the motion vector candidates and selects the best motion vector candidate to be used as the selected motion vector for the current prediction block. If the downstream decoding device knows how the ordered list of motion vector candidates for the prediction block has been generated, this calculation is reproduced on the decoding device side that does not know the content of the current prediction block. Note that it is possible. Therefore, only the index of the motion vector selected from the motion vector candidate list, for example, by setting a motion vector selection flag in the prediction block header of the current prediction block, instead of the motion vector itself, is encoded. By encoding the index values that need to be included in the bitstream and not the actual motion vectors, much less information is needed throughout the video sequence.

直接符号化モードでは、動きベクトル選択フラグと、現在の予測ブロック及び動きベクトルによって示される参照フレームのブロックとの間の残差と、が符号化される。スキップ符号化モードでは、動きベクトル選択フラグは符号化されるが、残差信号の符号化は省略される。要するに、これは、現在のフレームの現在の予測ブロックの代わりに、動きベクトルによって示される参照フレームのブロックを使用するように下流の復号化装置に指示することを示す。   In the direct encoding mode, the motion vector selection flag and the residual between the current prediction block and the block of the reference frame indicated by the motion vector are encoded. In the skip encoding mode, the motion vector selection flag is encoded, but encoding of the residual signal is omitted. In essence, this indicates instructing the downstream decoding device to use the block of the reference frame indicated by the motion vector instead of the current prediction block of the current frame.

ソフトウェアにより実施されるフレーム間復号化部
図5は、少なくとも1つの実施形態による向上された動き補償予測技術が採用され、復号化装置300等の復号化装置と共に使用するのに適したフレーム間ビデオ復号化部500(以下、「復号化部500」という)により実施される対応するソフトウェアの一般的な機能ブロック図を示す。復号化部500は、符号化部400における局所復号化ループ455と同様に動作する。
FIG. 5 illustrates an inter-frame video adapted for use with a decoding device, such as decoding device 300, employing an improved motion compensated prediction technique according to at least one embodiment. FIG. 4 shows a general functional block diagram of corresponding software implemented by a decoding unit 500 (hereinafter, referred to as “decoding unit 500”). Decoding section 500 operates in the same manner as local decoding loop 455 in encoding section 400.

具体的には、復号化される符号化されたビデオビットストリーム504は、量子化係数(qcf)、差分動きベクトル(dmv)、付随するメッセージデータパケット(msg-data)及び他のデータのブロックを復号化することができるエントロピー復号化部508に提供される。次に、量子化係数(qcf)のブロックは、逆量子化部512によって逆量子化され、逆量子化係数(tcof ')が得られる。次に、逆量子化係数(tcof ')は、逆変換部516によって周波数領域から逆変換され、復号化残差ブロック(res')が得られる。加算部520は、対応する動きベクトル(mv)を用いて得られた動き補償予測ブロック(pred)を加算する。結果として得られる復号化ビデオ(dv)は、フレームアセンブリ部及びデブロックフィルタ処理部524においてデブロックフィルタ処理が行われる。フレームアセンブラ及びデブロックフィルタ処理部528の出力におけるブロック(recd)は、ビデオシーケンスの再構成されたフレームを形成し、復号化部500から出力され、また、後続の符号化ブロックを復号する動き補償予測器532の参照フレームとして使用される。   Specifically, the encoded video bitstream 504 to be decoded includes quantization coefficients (qcf), differential motion vectors (dmv), accompanying message data packets (msg-data), and other blocks of data. Provided to an entropy decoding unit 508 that can decode. Next, the block of the quantization coefficient (qcf) is inversely quantized by the inverse quantization unit 512, and an inverse quantization coefficient (tcof ′) is obtained. Next, the inverse quantization coefficient (tcof ′) is inversely transformed from the frequency domain by the inverse transform unit 516 to obtain a decoded residual block (res ′). The adding unit 520 adds the motion-compensated prediction block (pred) obtained using the corresponding motion vector (mv). The resulting decoded video (dv) is subjected to deblocking filtering in a frame assembly unit and a deblocking filtering unit 524. The blocks (recd) at the output of the frame assembler and deblocking filter processing unit 528 form a reconstructed frame of the video sequence, are output from the decoding unit 500, and are motion compensated for decoding subsequent coded blocks. Used as a reference frame for predictor 532.

動きベクトル選択ルーチン
図6は、符号化部400等の少なくとも1つの実施形態と共に使用するのに適した動きベクトル選択ルーチン600を示す。当業者に認識されるように、符号化工程における全てのイベントが図6に示されているわけではない。むしろ、明確化するために、動きベクトル選択ルーチンの説明に合理的に関連するステップのみが示されている。
Motion Vector Selection Routine FIG. 6 shows a motion vector selection routine 600 suitable for use with at least one embodiment, such as the encoder 400. As will be appreciated by those skilled in the art, not all events in the encoding process are shown in FIG. Rather, for clarity, only those steps that are reasonably relevant to describing the motion vector selection routine are shown.

実施ブロック603において、例えば動き推定部416は、符号化ブロックを取得する。   In the execution block 603, for example, the motion estimation unit 416 acquires an encoded block.

判断ブロック624において、動きベクトル選択ルーチン600が、符号化ブロックの符号化モードを選択する。例えば、上述したように、インター符号化モード、直接符号化モード、又はスキップ符号化モードが選択される。現在の符号化ブロックに対してスキップ符号化モード又は直接符号化モードのいずれかが選択された場合、動きベクトル選択ルーチン600は、以下で説明する実施ブロック663に進む。 At decision block 624, the motion vector selection routine 600 selects an encoding mode for the encoded block. For example, as described above, the inter encoding mode , the direct encoding mode, or the skip encoding mode is selected. If either the skip encoding mode or the direct encoding mode has been selected for the current encoded block, the motion vector selection routine 600 proceeds to an implementation block 663 described below.

判断ブロック624において、インター符号化モードが現在の符号化ブロックに対して選択されている場合、実施ブロック627において、動きベクトル選択ルーチン600は、現在の符号化ブロックを1つ又は複数の予測ブロックに分割するとともに、開始ループブロック630を開始し、現在のコーディングブロックにおける各予測ブロックが順に処理される。 If, at decision block 624, the inter-coding mode has been selected for the current coded block, then at implementation block 627, the motion vector selection routine 600 converts the current coded block to one or more prediction blocks. Along with splitting, a start loop block 630 is started, where each prediction block in the current coding block is processed in turn.

実施ブロック633において、動きベクトル選択ルーチン600は、Bタイプのピクチャの場合、参照フレームが以前のピクチャであるか、将来のピクチャであるか、又はその両方であるかを示す、現在の予測ブロックの予測インデックスを選択する。   In implementation block 633, the motion vector selection routine 600, for a B-type picture, indicates whether the reference frame is a previous picture, a future picture, or both, of the current prediction block. Select a prediction index.

次に、実施ブロック636において、動きベクトル選択ルーチン600は、上述した中間値化技術又は平均値化技術又は任意の利用可能な代替の動きベクトル予測方法等の動きベクトル予測方法を選択する。   Next, at implementation block 636, the motion vector selection routine 600 selects a motion vector prediction method, such as the median or average technique described above, or any available alternative motion vector prediction method.

実施ブロック642において、動きベクトル選択ルーチン600は、選択された動きベクトル予測方法を使用して、現在の予測ブロックの動きベクトル予測子(MV pred)を取得する。   At an implementation block 642, the motion vector selection routine 600 obtains a motion vector predictor (MV pred) for the current prediction block using the selected motion vector prediction method.

実施ブロック645において、動きベクトル選択ルーチン600は、現在の予測ブロックについての計算された動きベクトル(MV calc)を取得する。   In an implementation block 645, the motion vector selection routine 600 obtains a calculated motion vector (MV calc) for the current prediction block.

実施ブロック648において、動きベクトル選択ルーチン600は、現在の予測ブロックの動きベクトル差分(ΔMV)(Pタイプピクチャの場合は単一の動きベクトル差分が存在し、Bタイプピクチャの場合は2つの動きベクトル差分が存在する)を取得する。   In an implementation block 648, the motion vector selection routine 600 determines the motion vector difference (ΔMV) of the current prediction block (a single motion vector difference for a P-type picture, and two motion vectors for a B-type picture). Difference exists).

実施ブロック651において、動きベクトル選択ルーチン600は、計算された動きベクトル(MV calc)によって示されるブロックに対する現在の予測ブロック(PB cur)との間の残差を取得する。   In the implementation block 651, the motion vector selection routine 600 obtains the residual between the block indicated by the calculated motion vector (MV calc) and the current prediction block (PB cur).

実施ブロック654において、動きベクトル選択ルーチン600は、現在の予測ブロックの動きベクトル差分及び残差を符号化する。   At implementation block 654, the motion vector selection routine 600 encodes the motion vector differences and residuals of the current prediction block.

実施ブロック657において、動きベクトル選択ルーチン600は、現在の予測ブロックに対していずれの動きベクトル予測技術が使用されたかを示すSMV-PMフラグを、現在のフレームのピクチャヘッダ(又は現在の予測ブロックの予測ブロックヘッダ)内に設定する。   In an implementation block 657, the motion vector selection routine 600 sets the SMV-PM flag indicating which motion vector prediction technique was used for the current prediction block, in the picture header of the current frame (or in the current prediction block). (Predicted block header).

終了ループブロック660において、動きベクトル選択ルーチン600は、開始ループブロック630に戻り、現在の符号化ブロックの次の予測ブロック(もしあれば)を処理する。   At the end loop block 660, the motion vector selection routine 600 returns to the start loop block 630 to process the next prediction block (if any) of the current coded block.

判断ブロック624に戻って、現在の符号化ブロックに対してスキップ符号化モード又は直接符号化モードのいずれかが選択された場合、実施ブロック663において、動きベクトル選択ルーチン600は、現在の符号化ブロックと等しくなるように現在の予測ブロックを設定する。   Returning to decision block 624, if either the skip coding mode or the direct coding mode has been selected for the current coded block, then in implementation block 663, the motion vector selection routine 600 returns to the current coded block. Set the current prediction block to be equal to

次に、動きベクトル選択ルーチン600は、動きベクトル選択ルーチン600に対して動きベクトル候補の順序付きリストを返す動きベクトル候補生成サブルーチン700(図7を参照して以下に説明する)を呼び出す。   Next, the motion vector selection routine 600 calls a motion vector candidate generation subroutine 700 (described below with reference to FIG. 7) that returns an ordered list of motion vector candidates to the motion vector selection routine 600.

次に、実施ブロック666において、動きベクトル選択ルーチン600は、現在の予測ブロックを符号化する際に使用するために、動きベクトル候補リストから動きベクトルを選択する。   Next, in an implementation block 666, the motion vector selection routine 600 selects a motion vector from the motion vector candidate list for use in encoding the current prediction block.

判断ブロック667において、選択された符号化モードが直接符号化である場合、実施ブロック669において、動きベクトル選択ルーチン600は、現在の予測ブロックと、選択された動きベクトルによって示される参照ブロックとの間の残差を計算する。   If, at decision block 667, the selected coding mode is direct coding, then at implementation block 669, the motion vector selection routine 600 determines between the current prediction block and the reference block indicated by the selected motion vector. Calculate the residual of.

実施ブロック672において、動きベクトル選択ルーチン600は、残差を符号化し、実施ブロック675において、動きベクトル選択ルーチン600は、現在の予測ブロックの符号化にいずれの動きベクトル候補が選択されたかを示す動きベクトル選択フラグを、現在の予測ブロックにおける予測ブロックヘッダ内に設定する。   In an implementation block 672, the motion vector selection routine 600 encodes the residual, and in an implementation block 675, the motion vector selection routine 600 determines which motion vector candidate was selected for encoding the current prediction block. A vector selection flag is set in the prediction block header of the current prediction block.

動きベクトル選択ルーチン600は、終了ブロック699で終了する。   The motion vector selection routine 600 ends at end block 699.

動きベクトル候補生成サブルーチン700
図7は、少なくとも1つの実施形態による動きベクトル候補の順序付きリストを生成する動きベクトル候補生成サブルーチン700を示す。図示の実施形態では、3つの動きベクトル候補が生成される。しかしながら、当業者であれば、同じ技術を使用してより多くの、又はより少ない量の候補が生成されてもよいことや、更に、本開示の範囲から逸脱することなく、代替及び/又は同等の実施形態が、示され記載された特定の実施形態に対して代用可能であることを認識することができる。
Motion vector candidate generation subroutine 700
FIG. 7 illustrates a motion vector candidate generation subroutine 700 for generating an ordered list of motion vector candidates according to at least one embodiment. In the illustrated embodiment, three motion vector candidates are generated. However, one of ordinary skill in the art will recognize that more or lesser amounts of candidates may be generated using the same technique, and further alternative and / or equivalent without departing from the scope of the present disclosure. It can be appreciated that the embodiments of the present invention are substitutable for the particular embodiment shown and described.

動きベクトル候補生成サブルーチン700は、実施ブロック704において、現在の予測ブロックの動きベクトル候補リストを生成する要求を取得する。   The motion vector candidate generation subroutine 700 obtains a request to generate a motion vector candidate list of a current prediction block in an execution block 704.

判断ブロック708において、動きベクトルが第1の候補参照ブロック(RB a)から利用可能である場合、実施ブロック712において、動きベクトル候補生成サブルーチン700は、第1の動きベクトル候補(MVC 1)をMV aに設定し、判断ブロック716に進む。   If, at decision block 708, a motion vector is available from the first candidate reference block (RBa), at implementation block 712, the motion vector candidate generation subroutine 700 converts the first motion vector candidate (MVC 1) to an MV Set to a and proceed to decision block 716.

判断ブロック716において、動きベクトルが第2の候補参照ブロック(RB b)から利用可能である場合、実施ブロック724において、動きベクトル候補生成サブルーチン700は、第2の動きベクトル候補(MVC 2)をMV bに設定し、判断ブロック728に進む。   If, at decision block 716, a motion vector is available from the second candidate reference block (RB b), then at execution block 724, the motion vector candidate generation subroutine 700 converts the second motion vector candidate (MVC 2) to an MV Set to b and proceed to decision block 728.

判断ブロック728において、動きベクトルが第3の候補ブロック(RB c)から利用可能である場合、実施ブロック736において、動きベクトル候補生成サブルーチン700は、第3の動きベクトル候補(MVC 3)をMV cに設定する。   If, at decision block 728, a motion vector is available from the third candidate block (RBc), then at implementation block 736, the motion vector candidate generation subroutine 700 converts the third motion vector candidate (MVC3) to MVc. Set to.

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV a、MVC 2 = MV b、及びMVC 3 = MV cのそれぞれの値を有する動きベクトル候補リストを返す。   Next, the motion vector candidate generation subroutine 700 returns a motion vector candidate list having respective values of MVC 1 = MVa, MVC 2 = MVb, and MVC 3 = MVc in a return block 799.

判断ブロック728を再び参照して、動きベクトルが第3候補ブロック(RB c)から利用可能でない場合、実施ブロック740において、動きベクトル候補生成サブルーチン700は、第3動きベクトル候補(MVC 3)を(0,0)に設定する。   Referring again to decision block 728, if a motion vector is not available from the third candidate block (RBc), then at execution block 740, the motion vector candidate generation subroutine 700 converts the third motion vector candidate (MVC3) to ( 0,0).

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV a、MVC 2 = MV b、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, the motion vector candidate generation subroutine 700 returns a motion vector candidate list having respective values of MVC 1 = MVa, MVC 2 = MVb, and MVC 3 = (0,0) in a return block 799.

判断ブロック716を再び参照して、動きベクトルが第2候補ブロック(RB b)から利用可能でない場合、動きベクトル候補生成サブルーチン700は判断ブロック732に進む。   Referring again to decision block 716, if a motion vector is not available from the second candidate block (RB b), motion vector candidate generation subroutine 700 proceeds to decision block 732.

判断ブロック732において、動きベクトルが第3の候補参照ブロック(RB c)から利用可能である場合、実施ブロック744において、動きベクトル候補生成サブルーチン700は、第2の動きベクトル候補(MVC 2)を MV cに設定する。実施ブロック740において、第3の動きベクトル候補(MVC 3)は(0,0)に設定される。   If, at decision block 732, a motion vector is available from the third candidate reference block (RBc), then at execution block 744, the motion vector candidate generation subroutine 700 converts the second motion vector candidate (MVC2) to an MV. Set to c. In an implementation block 740, the third motion vector candidate (MVC3) is set to (0,0).

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV a、MVC 2 = MV c、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, the motion vector candidate generation subroutine 700 returns a motion vector candidate list having respective values of MVC 1 = MVa, MVC 2 = MVc, and MVC 3 = (0,0) in a return block 799.

判断ブロック732を再び参照して、動きベクトルが第3の候補参照ブロック(RB c)から利用可能でない場合、実施ブロック748において、動きベクトル候補生成サブルーチン700は、第2の動きベクトル候補(MVC 2)を(0,0)に設定し、実施ブロック740で第3の動きベクトル候補(MVC 3)を(0,0)に設定する。   Referring again to decision block 732, if a motion vector is not available from the third candidate reference block (RB c), then at execution block 748, the motion vector candidate generation subroutine 700 proceeds to the second motion vector candidate (MVC 2). ) Is set to (0,0), and the third motion vector candidate (MVC 3) is set to (0,0) in the execution block 740.

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV a、MVC 2 =(0,0)、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, in the return block 799, the motion vector candidate generation subroutine 700 generates a motion vector candidate list having respective values of MVC 1 = MVa, MVC 2 = (0,0), and MVC 3 = (0,0). return it.

判断ブロック708を再び参照して、動きベクトルが第1の候補参照ブロック(RB a)から利用可能でない場合、動きベクトル候補生成サブルーチン700は判断ブロック720に進む。   Referring again to decision block 708, if a motion vector is not available from the first candidate reference block (RBa), motion vector candidate generation subroutine 700 proceeds to decision block 720.

判断ブロック720において、動きベクトルが第2の候補参照ブロック(RB b)から利用可能である場合、実施ブロック752において、動きベクトル候補生成サブルーチン700は、第1の動きベクトル候補(MVC 1)をMV bに設定する。次に、動きベクトル候補生成サブルーチン700は、判断ブロック732に進む。   If, at decision block 720, a motion vector is available from the second candidate reference block (RB b), then at implementation block 752, the motion vector candidate generation subroutine 700 converts the first motion vector candidate (MVC 1) to an MV Set to b. Next, the motion vector candidate generation subroutine 700 proceeds to decision block 732.

判断ブロック732に戻って、動きベクトルが第3の候補参照ブロック(RB c)から利用可能である場合、実施ブロック744において、動きベクトル候補生成サブルーチン700は、第2の動きベクトル候補(MVC 2)をMV cに設定する。実施ブロック740において、第3の動きベクトル候補(MVC 3)は(0,0)に設定される。   Returning to decision block 732, if a motion vector is available from the third candidate reference block (RBc), then at execution block 744, the motion vector candidate generation subroutine 700 proceeds to the second motion vector candidate (MVC 2). Is set to MV c. In an implementation block 740, the third motion vector candidate (MVC3) is set to (0,0).

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV b、MVC 2 = MV c、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, the motion vector candidate generation subroutine 700 returns, in a return block 799, a motion vector candidate list having respective values of MVC1 = MVb, MVC2 = MVc, and MVC3 = (0,0).

判断ブロック732を再び参照して、動きベクトルが第3の候補参照ブロック(RB c)から利用可能でない場合、実施ブロック748において、動きベクトル候補生成サブルーチン700は、第2の動きベクトル候補(MVC 2)を(0,0)に設定し、実施ブロック740において、第3の動きベクトル候補(MVC 3)を(0,0)に設定する。   Referring again to decision block 732, if a motion vector is not available from the third candidate reference block (RB c), then at execution block 748, the motion vector candidate generation subroutine 700 proceeds to the second motion vector candidate (MVC 2). ) Is set to (0,0), and in the execution block 740, the third motion vector candidate (MVC3) is set to (0,0).

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799でMVC 1 = MV b、MVC 2 =(0,0)、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, the motion vector candidate generation subroutine 700 generates a motion vector candidate list having respective values of MVC 1 = MVb, MVC 2 = (0,0) and MVC 3 = (0,0) in a return block 799. return.

判断ブロック720を再び参照して、動きベクトルが第2の候補参照ブロック(RB b)から利用可能でない場合、動きベクトル候補生成サブルーチン700は、判断ブロック756に進む。   Referring again to decision block 720, if a motion vector is not available from the second candidate reference block (RB b), motion vector candidate generation subroutine 700 proceeds to decision block 756.

判断ブロック756において、動きベクトルが第3の候補参照ブロック(RB c)から利用可能である場合、実施ブロック760において、動きベクトル候補生成サブルーチン700は、第1の動きベクトル候補(MVC 1)をMV cに設定する。次に、動きベクトル候補生成サブルーチン700は、実施ブロック748において、第2の動きベクトル候補(MVC 2)を(0,0)に設定し、実施ブロック740において、第3の動きベクトル候補(MVC 3)を(0,0)に設定する。   If, at decision block 756, a motion vector is available from the third candidate reference block (RBc), at execution block 760, the motion vector candidate generation subroutine 700 converts the first motion vector candidate (MVC 1) to the MV Set to c. Next, the motion vector candidate generation subroutine 700 sets the second motion vector candidate (MVC 2) to (0, 0) in the execution block 748, and sets the third motion vector candidate (MVC 3) in the execution block 740. ) To (0,0).

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV c、MVC 2=(0,0)、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, in the return block 799, the motion vector candidate generation subroutine 700 generates a motion vector candidate list having respective values of MVC 1 = MVc, MVC 2 = (0,0), and MVC 3 = (0,0). return it.

判断ブロック756を再び参照して、動きベクトルが第3の候補参照ブロック(RB c)から利用可能でない場合、実施ブロック764において、動きベクトル候補生成サブルーチン700は、第1の動きベクトル候補(MVC 1)を(0,0)に設定する。次に、動きベクトル候補生成サブルーチン700は、実施ブロック748において、第2の動きベクトル候補を(0,0)に設定し、実施ブロック740において、第3の動きベクトル候補を(0,0)に設定する。   Referring again to decision block 756, if a motion vector is not available from the third candidate reference block (RBc), then at implementation block 764, the motion vector candidate generation subroutine 700 proceeds to the first motion vector candidate (MVC 1). ) To (0,0). Next, the motion vector candidate generation subroutine 700 sets the second motion vector candidate to (0,0) in the execution block 748, and sets the third motion vector candidate to (0,0) in the execution block 740. Set.

次に、動きベクトル候補生成サブルーチン700は、リターンブロック799において、MVC 1 = MV b、MVC 2 =(0,0)、及びMVC 3 =(0,0)のそれぞれの値を有する動きベクトル候補リストを返す。   Next, in the return block 799, the motion vector candidate generation subroutine 700 generates a motion vector candidate list having respective values of MVC 1 = MVb, MVC 2 = (0,0), and MVC 3 = (0,0). return it.

動きベクトル復元ルーチン800
図8は、復号化部500等の少なくとも1つの実施形態と共に使用するのに適した動きベクトル復元ルーチン800を示す。当業者に認識されるように、復号化工程における全てのイベントが図8に示されているわけではない。むしろ、明確化するために、動きベクトル選択ルーチンの記述に合理的に関連するステップのみが示されている。
Motion vector restoration routine 800
FIG. 8 shows a motion vector restoration routine 800 suitable for use with at least one embodiment such as the decoder 500. As will be appreciated by those skilled in the art, not all events in the decoding process are shown in FIG. Rather, for clarity, only those steps that are reasonably relevant to describing the motion vector selection routine are shown.

実施ブロック803において、動きベクトル復元ルーチン800は、符号化ブロックに対応するデータを取得する。   In an implementation block 803, the motion vector restoration routine 800 obtains data corresponding to an encoded block.

実施ブロック828において、動きベクトル復元ルーチン800は、符号化ブロックを符号化するために使用された符号化モードを特定する。上述したように、使用された可能性がある符号化モードは、インター符号化モード、直接符号化モード、又はスキップ符号化モードである。 At implementation block 828, the motion vector recovery routine 800 identifies the coding mode used to code the coded block. As described above, the encoding modes that may have been used are the inter encoding mode , the direct encoding mode, or the skip encoding mode.

判断ブロック830において、符号化ブロックがインター符号化モードを使用して符号化された場合、実施ブロック833において、動きベクトル復元ルーチン800は、符号化ブロックに対応する予測ブロックを特定する。開始ループブロック836において、現在の符号化ブロックにおける各予測ブロックが順に処理される。 If, at decision block 830, the coded block was coded using the inter-coding mode , then at implementation block 833, the motion vector restoration routine 800 identifies a predicted block corresponding to the coded block. In a start loop block 836, each prediction block in the current coded block is processed in turn.

実施ブロック839において、動きベクトル復元ルーチン800は、予測ブロックヘッダから現在の予測ブロックの予測インデックスを特定する。   In an implementation block 839, the motion vector restoration routine 800 determines the prediction index of the current prediction block from the prediction block header.

実施ブロック842において、動きベクトル復元ルーチン800は、例えば、現在のフレームのピクチャヘッダ内のSMV-PMフラグを読み出すことによって、現在の予測ブロックの動きベクトルを予測するために使用された動きベクトル予測方法を特定する。   In implementation block 842, the motion vector recovery routine 800 may include a motion vector prediction method used to predict the motion vector of the current prediction block, for example, by reading the SMV-PM flag in the picture header of the current frame. To identify.

実施ブロック848において、動きベクトル復元ルーチン800は、現在の予測ブロックの動きベクトル差分(ΔMV)を取得する。   In an implementation block 848, the motion vector restoration routine 800 obtains a motion vector difference (ΔMV) of the current prediction block.

実施ブロック851において、動きベクトル復元ルーチン800は、実施ブロック842で特定された動きベクトル予測方法を使用して、現在の予測ブロックの予測動きベクトル(MV pred)を取得する。   In an implementation block 851, the motion vector restoration routine 800 obtains a predicted motion vector (MV pred) of the current prediction block using the motion vector prediction method specified in the implementation block 842.

実施ブロック854において、動きベクトル復元ルーチン800は、例えば予測された動きベクトル(MV pred)を動きベクトル差分(ΔMV)に加算することによって、現在の予測ブロックについての計算された動きベクトル(MV calc)(Pタイプピクチャの場合は単一の復元された動きベクトルが存在し、Bタイプピクチャの場合は2つの復元された動きベクトルが存在する)を復元する。   In an implementation block 854, the motion vector restoration routine 800 may calculate the motion vector (MV calc) for the current predicted block by adding the predicted motion vector (MV pred) to the motion vector difference (ΔMV), for example. (For a P-type picture, there is a single restored motion vector, and for a B-type picture, there are two restored motion vectors).

次に、実施ブロック857において、動きベクトル復元ルーチン800は、予測ブロックの復元値を取得するために、計算された動きベクトル(MV calc)によって示されるブロックに現在の予測ブロックの残差を加算する。   Next, in an implementation block 857, the motion vector restoration routine 800 adds the residual of the current prediction block to the block indicated by the calculated motion vector (MV calc) to obtain a restoration value of the prediction block. .

判断ブロック830を再び参照して、現在の符号化ブロックがスキップ符号化モード又は直接符号化モードのいずれかを使用して符号化された場合、動きベクトル復元ルーチン800は、動きベクトル復元ルーチン800に対して動きベクトル候補の順序付きリストを返す動きベクトル候補生成サブルーチン700(図7を参照して上述した)を呼び出す。   Referring again to decision block 830, if the current coded block was coded using either the skip coding mode or the direct coding mode, the motion vector reconstruction routine 800 In response, a motion vector candidate generation subroutine 700 (described above with reference to FIG. 7) that returns an ordered list of motion vector candidates is called.

次に、実施ブロック863において、動きベクトル復元ルーチン800は、実施ブロック863の予測ブロックヘッダから動きベクトル選択フラグを読み出す。   Next, in an implementation block 863, the motion vector restoration routine 800 reads a motion vector selection flag from the prediction block header of the implementation block 863.

次に、実施ブロック866において、動きベクトル復元ルーチン800は、動きベクトル選択フラグを使用して、現在の予測ブロックを符号化するために使用された順序付けられた動きベクトル候補リストの順序付けリストから動きベクトルを特定する。   Next, in an implementation block 866, the motion vector restoration routine 800 uses the motion vector selection flag to determine the motion vector from the ordered list of ordered motion vector candidate lists used to encode the current prediction block. To identify.

判断ブロック869において、現在の符号化ブロックが直接符号化モードで符号化されていた場合、実施ブロック872において、動きベクトル復元ルーチン800は、予測ブロック係数を復元するために、選択された動きベクトルによって特定されるブロックの係数に予測ブロックの残差を追加する。   If, at decision block 869, the current coded block was coded in the direct coding mode, then at implementation block 872, the motion vector restoration routine 800 uses the selected motion vector to recover the predicted block coefficients. The residual of the prediction block is added to the coefficient of the specified block.

現在の符号化ブロックがスキップ符号化モードで符号化されている場合、実施ブロック875において、動きベクトル復元ルーチン800は、選択された動きベクトルによって示される参照ブロックの係数を予測ブロック係数として使用する。   If the current coded block is coded in the skip coding mode, in an implementation block 875, the motion vector restoration routine 800 uses the coefficients of the reference block indicated by the selected motion vector as prediction block coefficients.

動きベクトル復元ルーチン800は、終了ブロック899で終了する。   The motion vector restoration routine 800 ends at end block 899.

本明細書において特定の実施形態を図示し説明してきたが、当業者であれば、図示され、又は記載された特定の実施形態の代わりに代用及び/又は同等の実施形態とすることが可能であることを認識することができる。この出願は、本明細書で論じる実施形態の任意の適合又は変形を包含することを意図している。   Although specific embodiments have been illustrated and described herein, those skilled in the art will be able to substitute and / or equivalently substitute for the specific embodiments shown or described. You can recognize that there is. This application is intended to cover any adaptations or variations of the embodiments discussed herein.

Claims (23)

符号化されていないビデオフレームを表す符号化されたビットストリームを生成するためにビデオフレームのシーケンスにおけるビデオフレームを符号化する方法であって、
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、
を備え、
前記インター符号化モードが選択された場合には、更に、
取得された前記符号化ブロックを複数の予測ブロックに分割する工程と、
前記複数の予測ブロックのそれぞれの予測ブロックに対して、
各前記予測ブロックを符号化する際に使用するために、中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、
前記符号化されたビットストリームにおける各前記予測ブロックのビデオデータ部分を生成するために、選択された動きベクトル予測方法に基づいて各前記予測ブロックを符号化する工程と、
符号化された各前記予測ブロックのヘッダ部分に、その予測ブロックの符号化に用いられた前記選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、
を備え、
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
取得された前記符号化ブロックを現在の予測ブロックとして設定する工程と、
前記現在の予測ブロックの動きベクトル候補の順序付きリストを取得する工程と、
前記現在の予測ブロックを符号化する際に使用するために、前記動きベクトル候補の順序付きリストから動きベクトルを選択する工程と、
前記符号化されたビットストリームにおける前記現在の予測ブロックのビデオデータ部分の一部を生成するために、選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程と、
符号化された前記現在の予測ブロックのヘッダ部分に、前記選択された動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、
を備え、
更に、前記符号化されたビットストリームのヘッダ部分に、前記符号化ブロックを符号化するために前記複数の符号化モードから選択された符号化モードを示す符号化モード選択フラグを設定する工程を備える方法。
A method of encoding a video frame in a sequence of video frames to generate an encoded bitstream representing an unencoded video frame, the method comprising:
Obtaining a coded block from the uncoded video frame;
Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode , a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
With
When the inter-coding mode is selected,
Dividing the obtained encoded block into a plurality of prediction blocks;
For each prediction block of the plurality of prediction blocks,
Selecting one motion vector prediction method from among the motion vector prediction method using an intermediate value and the motion vector prediction method using an average value , for use in encoding each of the prediction blocks;
To generate a video data portion of each of said prediction block in the encoded bit stream, a step of coding each said prediction block based on motion-out vector prediction method selected,
Setting a selected motion vector prediction method flag indicating the selected motion vector prediction method used for encoding the prediction block in a header portion of each of the encoded prediction blocks ;
With
When the skip encoding mode or the direct encoding mode is selected, further,
Setting the obtained encoded block as a current prediction block;
Obtaining an ordered list of motion vector candidates for the current prediction block;
Selecting a motion vector from the ordered list of candidate motion vectors for use in encoding the current prediction block;
To generate a portion of the video data portion of the current prediction block in the encoded bit stream, a step of coding the current prediction block using-out the selected motion vector,
The encoded in the header of the current prediction block, and setting the motion vector selection flag indicating the position of the ordered list of the motion vector candidate corresponding to the moving-out vector said selected
With
Setting a coding mode selection flag indicating a coding mode selected from the plurality of coding modes for coding the coding block in a header portion of the coded bit stream. Method.
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
前記符号化されていないビデオフレームを、複数の行及び複数の列に配置された複数の予測ブロックであって、前記現在の予測ブロックが複数の行における第1の行に位置するとともに、複数の列における第1の列に位置する複数の予測ブロックに分割する工程を備え、
前記動きベクトル候補の順序付きリストを取得する工程は、
前記複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルを選択する工程と、
前記複数の予測ブロックのうちの第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルを選択する工程と、
前記複数の予測ブロックのうちの第3の参照予測ブロックを以前符号化する際に使用された第3の動きベクトルを選択する工程と、
を含む請求項1に記載の方法。
When the skip encoding mode or the direct encoding mode is selected, further,
A plurality of prediction blocks arranged in a plurality of rows and a plurality of columns, wherein the current prediction block is located in a first row of the plurality of rows; Splitting into a plurality of prediction blocks located in a first column of the column,
Obtaining the ordered list of motion vector candidates,
Selecting a first motion vector used when previously encoding a first reference prediction block of the plurality of prediction blocks;
Selecting a second motion vector used when previously encoding a second reference prediction block of the plurality of prediction blocks;
Selecting a third motion vector used when previously encoding a third reference prediction block of the plurality of prediction blocks;
The method of claim 1, comprising:
前記第1の参照予測ブロックを、前記複数の予測ブロックのうち、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記第1の列に位置する予測ブロックから選択し、
前記第2の参照予測ブロックを、前記複数の予測ブロックのうち、前記第2の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する予測ブロックから選択し、
前記第3の参照予測ブロックを、前記複数の予測ブロックのうち、前記第1の行に位置するとともに、前記複数の列において前記第1の列に隣接する第3の列に位置する予測ブロックから選択する請求項2に記載の方法。
The first reference prediction block is located at a second row adjacent to the first row in the plurality of rows of the plurality of prediction blocks, and a prediction block located at the first column. Selected,
The second reference prediction block is located at a second row of the plurality of prediction blocks and a prediction block located at a second column adjacent to the first column in the plurality of columns. Selected,
The third reference prediction block is located at the first row of the plurality of prediction blocks, and the third reference prediction block is located at a third column adjacent to the first column in the plurality of columns. 3. The method of claim 2, wherein said method is selected.
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
前記符号化されていないビデオフレームを、複数の行及び複数の列に配置された複数の予測ブロックであって、前記現在の予測ブロックが複数の行における第1の行に位置するとともに、複数の列における第1の列に位置する複数の予測ブロックに分割する工程を備え、
前記動きベクトル候補の順序付きリストを取得する工程は、
前記複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルを選択する工程と、
前記複数の予測ブロックのうちの第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルを選択する工程と、
ゼロ値動きベクトルを選択する工程と、
を含む請求項1に記載の方法。
When the skip encoding mode or the direct encoding mode is selected, further,
A plurality of prediction blocks arranged in a plurality of rows and a plurality of columns, wherein the current prediction block is located in a first row of the plurality of rows; Splitting into a plurality of prediction blocks located in a first column of the column,
Obtaining the ordered list of motion vector candidates,
Selecting a first motion vector used when previously encoding a first reference prediction block of the plurality of prediction blocks;
Selecting a second motion vector used when previously encoding a second reference prediction block of the plurality of prediction blocks;
Selecting a zero value motion vector;
The method of claim 1, comprising:
前記第1の参照予測ブロックを、前記複数の予測ブロックのうち、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記第1の列に位置する予測ブロックから選択し、
前記第2の参照予測ブロックを、前記複数の予測ブロックのうち、前記第2の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する予測ブロックから選択する請求項4に記載の方法。
The first reference prediction block is located at a second row adjacent to the first row in the plurality of rows of the plurality of prediction blocks, and a prediction block located at the first column. Selected,
The second reference prediction block is located at a second row of the plurality of prediction blocks and a prediction block located at a second column adjacent to the first column in the plurality of columns. 5. The method according to claim 4, wherein the method is selected.
前記第1の参照予測ブロックを、前記複数の予測ブロックのうち、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記第1の列に位置する予測ブロックから選択し、
前記第2の参照予測ブロックを、前記複数の予測ブロックのうち、前記第1の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する予測ブロックから選択する請求項4に記載の方法。
The first reference prediction block is located at a second row adjacent to the first row in the plurality of rows of the plurality of prediction blocks, and a prediction block located at the first column. Selected,
The second reference prediction block is located at the first row of the plurality of prediction blocks, and the second reference prediction block is located at a second column adjacent to the first column in the plurality of columns. 5. The method according to claim 4, wherein the method is selected.
前記第1の参照予測ブロックを、前記複数の予測ブロックのうち、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する予測ブロックから選択し、
前記第2の参照予測ブロックを、前記複数の予測ブロックのうち、前記第1の行に位置するとともに、前記複数の列において前記第1の列に隣接する第3の列に位置する予測ブロックから選択する請求項4に記載の方法。
The first reference prediction block is located in a second row of the plurality of prediction blocks adjacent to the first row in the plurality of rows, and is located in the first column in the plurality of columns. Selecting from a prediction block located in an adjacent second column,
The second reference prediction block is located at a first row of the plurality of prediction blocks and a prediction block located at a third column adjacent to the first column in the plurality of columns. 5. The method according to claim 4, wherein the method is selected.
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
前記符号化されていないビデオフレームを、複数の行及び複数の列に配置された複数の予測ブロックであって、前記現在の予測ブロックが複数の行における第1の行に位置するとともに、複数の列における第1の列に位置する複数の予測ブロックに分割する工程を備え、
前記動きベクトル候補の順序付きリストは、
前記複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルと、
第1のゼロ値動きベクトルと、
第2のゼロ値動きベクトルと、
を含む請求項1に記載の方法。
When the skip encoding mode or the direct encoding mode is selected, further,
A plurality of prediction blocks arranged in a plurality of rows and a plurality of columns, wherein the current prediction block is located in a first row of the plurality of rows; Splitting into a plurality of prediction blocks located in a first column of the column,
The ordered list of motion vector candidates is:
A first motion vector used when previously encoding a first reference prediction block of the plurality of prediction blocks;
A first zero-valued motion vector;
A second zero-valued motion vector;
The method of claim 1, comprising:
前記第1の参照予測ブロックは、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記第1の列に位置する請求項8に記載の方法。   9. The method of claim 8, wherein the first reference prediction block is located in a second row adjacent to the first row in the plurality of rows and is located in the first column. 前記第1の参照予測ブロックは、前記複数の行において前記第1の行に隣接する第2の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する請求項8に記載の方法。   The first reference prediction block is located in a second row adjacent to the first row in the plurality of rows, and is located in a second column adjacent to the first column in the plurality of columns. 9. The method of claim 8, wherein the method comprises: 前記第1の参照予測ブロックは、前記第1の行に位置するとともに、前記複数の列において前記第1の列に隣接する第2の列に位置する請求項8に記載の方法。   9. The method of claim 8, wherein the first reference prediction block is located in the first row and in a second column of the plurality of columns adjacent to the first column. 前記動きベクトル候補の順序付きリストは、
第1のゼロ値動きベクトルと、
第2のゼロ値動きベクトルと、
第3のゼロ値動きベクトルと、
を含む請求項1に記載の方法。
The ordered list of motion vector candidates is:
A first zero-valued motion vector;
A second zero-valued motion vector;
A third zero value motion vector;
The method of claim 1, comprising:
前記選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程は、
前記選択された動きベクトルを使用して、前記ビデオフレームのシーケンスにおいて以前符号化されたフレームにおける第2の予測ブロックを特定する工程と、
前記現在の予測ブロックと前記第2の予測ブロックとの間の残差を取得する工程と、
前記符号化されたビットストリームのビデオデータ部分における前記現在の予測ブロックに対応する部分を生成するために前記残差を符号化する工程と、
を含む請求項1に記載の方法。
The step of encoding the current prediction block using said-out selected motion vectors,
A step of using the selected motion-out vector, identifying a second prediction block in the frame that is previously encoded in the sequence of video frames,
Obtaining a residual between the current prediction block and the second prediction block;
Encoding the residual to generate a portion of the video data portion of the encoded bitstream that corresponds to the current prediction block;
The method of claim 1, comprising:
前記選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程は、
前記選択された動きベクトルを使用して、前記ビデオフレームのシーケンスにおいて以前符号化されたフレームにおける第2の予測ブロックを特定する工程と、
前記符号化されたビットストリームのビデオデータ部分における前記現在の予測ブロックに対応する部分を生成するために前記第2の予測ブロックを符号化する工程と、
を含む請求項1に記載の方法。
The step of encoding the current prediction block using said-out selected motion vectors,
A step of using the selected motion-out vector, identifying a second prediction block in the frame that is previously encoded in the sequence of video frames,
Encoding the second prediction block to generate a portion of the video data portion of the encoded bitstream that corresponds to the current prediction block;
The method of claim 1, comprising:
符号化されていないビデオフレームを表す符号化されたビットストリームであって、少なくともヘッダ部分及びビデオデータ部分を含む符号化されたビットストリームを生成するためにビデオフレームを符号化する方法であって、
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、
を備え、
前記インター符号化モードが選択された場合には、更に、
取得された前記符号化ブロックを複数の予測ブロックに分割する工程と、
前記複数の予測ブロックのそれぞれを符号化する際に使用するために、中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、
前記複数の予測ブロックのそれぞれに対して、選択された動きベクトル予測方法を使用してそれぞれの動きベクトルを取得する工程と、
前記符号化されたビットストリームのビデオデータ部分の一部を生成するために、各前記動きベクトルを使用して前記複数の予測ブロックのそれぞれを符号化する工程と、
前記符号化されたビットストリームの前記複数の予測ブロックに対応するヘッダ部分に、前記複数の予測ブロックの符号化に用いられた前記選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、
前記符号化されたビットストリームのヘッダ部分に、前記符号化ブロックを符号化するために前記複数の符号化モードから選択された符号化モードを示す符号化モード選択フラグを設定する工程と、
を備える方法。
A method of encoding a video frame to generate an encoded bitstream representing an unencoded video frame, the encoded bitstream including at least a header portion and a video data portion.
Obtaining a coded block from the uncoded video frame;
Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode , a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
With
When the inter-coding mode is selected,
Dividing the obtained encoded block into a plurality of prediction blocks;
Selecting one motion vector prediction method from among the motion vector prediction method using an intermediate value and the motion vector prediction method using an average value, for use in encoding each of the plurality of prediction blocks,
For each of said plurality of prediction blocks, a step of acquiring the respective motion vector by using the selected motion-out vector prediction method,
Encoding each of the plurality of prediction blocks using each of the motion vectors to generate a portion of a video data portion of the encoded bitstream;
A selected motion vector prediction method flag indicating the selected motion vector prediction method used for encoding the plurality of prediction blocks in a header portion corresponding to the plurality of prediction blocks in the encoded bit stream. Setting the
Setting a coding mode selection flag indicating a coding mode selected from the plurality of coding modes in order to code the coding block, in a header portion of the coded bit stream;
A method comprising:
前記複数の動きベクトル予測方法のうちの少なくとも1つの動きベクトル予測方法は、
前記複数の予測ブロックにおける第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルと、
前記複数の予測ブロックにおける第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルと、
前記複数の予測ブロックにおける第3の参照予測ブロックを以前符号化する際に使用された第3の動きベクトルと、
の中間値を決定する工程を含む請求項15に記載の方法。
At least one motion vector prediction method among the plurality of motion vector prediction methods,
A first motion vector used when previously encoding a first reference prediction block in the plurality of prediction blocks;
A second motion vector used when previously encoding a second reference prediction block in the plurality of prediction blocks;
A third motion vector used when previously encoding a third reference prediction block in the plurality of prediction blocks;
The method of claim 15, comprising determining an intermediate value of:
前記複数の動きベクトル予測方法のうちの少なくとも1つの動きベクトル予測方法は、
前記複数の予測ブロックにおける第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルと、
前記複数の予測ブロックにおける第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルと、
の平均値を決定する工程を含む請求項15に記載の方法。
At least one motion vector prediction method among the plurality of motion vector prediction methods,
A first motion vector used when previously encoding a first reference prediction block in the plurality of prediction blocks;
A second motion vector used when previously encoding a second reference prediction block in the plurality of prediction blocks;
16. The method of claim 15, comprising determining an average value of.
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
取得された前記符号化ブロックを現在の予測ブロックとして設定する工程と、
前記現在の予測ブロックの動きベクトル候補の順序付きリストを取得する工程と、
前記現在の予測ブロックを符号化する際に使用するために、前記動きベクトル候補の順序付きリストから動きベクトルを選択する工程と、
前記符号化されたビットストリームにおける前記現在の予測ブロックのビデオデータ部分の一部を生成するために、前記動きベクトルを使用して前記現在の予測ブロックを符号化する工程と、
符号化された前記現在の予測ブロックのヘッダ部分に、前記動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、
を備える請求項15に記載の方法。
When the skip encoding mode or the direct encoding mode is selected, further,
Setting the obtained encoded block as a current prediction block;
Obtaining an ordered list of motion vector candidates for the current prediction block;
Selecting a motion vector from the ordered list of candidate motion vectors for use in encoding the current prediction block;
Encoding the current prediction block using the motion vector to generate a portion of the video data portion of the current prediction block in the encoded bitstream;
Setting a motion vector selection flag indicating a position in an ordered list of the motion vector candidates corresponding to the motion vector in a header portion of the encoded current prediction block;
The method of claim 15 comprising:
符号化されていないビデオフレームを表す符号化されたビットストリームを生成するためにビデオフレームのシーケンスにおけるビデオフレームを符号化する方法であって、
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、
前記符号化されたビットストリームのヘッダ部分に、選択された前記符号化モードを示す符号化モード選択フラグを設定する工程と、
前記符号化ブロックから予測ブロックを選択する工程と、
を備え、
前記インター符号化モードが選択された場合には、更に、
中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、
前記符号化されたビットストリームにおけるビデオデータ部分を生成するために選択された前記動きベクトル予測方法に基づいて予測ブロックを符号化する工程と、
前記符号化されたビットストリームのヘッダ部分に、選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、
を備え、
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、
前記符号化されたビットストリームのビデオデータ部分を生成するために、動きベクトル候補の順序付きリストから選択された動きベクトルを使用して前記予測ブロックを符号化する工程と、
符号化された前記予測ブロックのヘッダ部分に、前記動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、
を備える方法。
A method of encoding a video frame in a sequence of video frames to generate an encoded bitstream representing an unencoded video frame, the method comprising:
Obtaining a coded block from the uncoded video frame;
Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode , a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
Setting a coding mode selection flag indicating the selected coding mode in a header portion of the coded bit stream;
Selecting a prediction block from the encoded block;
With
When the inter-coding mode is selected,
Selecting one motion vector prediction method from a motion vector prediction method using an intermediate value and a motion vector prediction method using an average value ;
Encoding a prediction block based on the motion vector prediction method selected to generate a video data portion in the encoded bitstream;
Setting a selected motion vector prediction method flag indicating a selected motion vector prediction method in a header portion of the encoded bit stream;
With
When the skip encoding mode or the direct encoding mode is selected, further,
To generate a video data portion of the encoded bit stream, a step of encoding the prediction block using a motion vector selected from an ordered list of candidate motion vectors,
Setting a motion vector selection flag indicating a position in the ordered list of the motion vector candidate corresponding to the motion vector in a header portion of the encoded prediction block;
A method comprising:
前記動きベクトルを使用して前記予測ブロックを符号化する工程は、
前記動きベクトル候補の順序付きリストを取得する工程と、
前記動きベクトル候補の順序付きリストから前記動きベクトルを選択する工程と、
前記動きベクトルを使用して、前記ビデオフレームのシーケンスにおいて以前符号化されたフレームにおける第2の予測ブロックを特定する工程と、
前記予測ブロックと前記第2の予測ブロックとの間の残差を取得する工程と、
前記符号化されたビットストリームのビデオデータ部分を生成するために前記残差を符号化する工程と、
を含む請求項19に記載の方法。
Encoding the prediction block using the motion vector,
Obtaining an ordered list of the motion vector candidates;
Selecting the motion vector from the ordered list of motion vector candidates;
Using the motion vector to identify a second predicted block in a previously encoded frame in the sequence of video frames;
Obtaining a residual between the prediction block and the second prediction block;
Encoding the residual to generate a video data portion of the encoded bitstream;
20. The method of claim 19, comprising:
符号化されていないビデオフレームを表す符号化されたビットストリームを生成するためにビデオフレームのシーケンスにおけるビデオフレームを符号化する方法であって、A method of encoding a video frame in a sequence of video frames to generate an encoded bitstream representing an unencoded video frame, the method comprising:
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、Obtaining a coded block from the uncoded video frame;
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode, a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
を備え、With
前記インター符号化モードが選択された場合には、更に、When the inter-coding mode is selected,
取得された前記符号化ブロックを複数の予測ブロックに分割する工程と、Dividing the obtained encoded block into a plurality of prediction blocks;
前記複数の予測ブロックのそれぞれの予測ブロックに対して、For each prediction block of the plurality of prediction blocks,
各前記予測ブロックを符号化する際に使用するために、中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、Selecting one motion vector prediction method from among the motion vector prediction method using an intermediate value and the motion vector prediction method using an average value, for use in encoding each of the prediction blocks;
前記符号化されたビットストリームにおける各前記予測ブロックのビデオデータ部分を生成するために、選択された動きベクトル予測方法に基づいて各前記予測ブロックを符号化する工程と、Encoding each of the prediction blocks based on a selected motion vector prediction method to generate a video data portion of each of the prediction blocks in the encoded bitstream;
符号化された各前記予測ブロックのヘッダ部分に、その予測ブロックの符号化に用いられた前記選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、Setting a selected motion vector prediction method flag indicating the selected motion vector prediction method used for encoding the prediction block in a header portion of each of the encoded prediction blocks;
を備え、With
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、When the skip encoding mode or the direct encoding mode is selected, further,
取得された前記符号化ブロックを現在の予測ブロックとして設定する工程と、Setting the obtained encoded block as a current prediction block;
前記現在の予測ブロックの動きベクトル候補の順序付きリストを取得する工程であって、Obtaining an ordered list of motion vector candidates for the current prediction block,
前記現在の予測ブロックに対する複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルを選択する工程と、Selecting a first motion vector used in previously encoding a first reference prediction block of a plurality of prediction blocks for the current prediction block;
前記複数の予測ブロックのうちの第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルを選択する工程と、Selecting a second motion vector used when previously encoding a second reference prediction block of the plurality of prediction blocks;
前記複数の予測ブロックのうちの第3の参照予測ブロックを以前符号化する際に使用された第3の動きベクトルを選択する工程と、Selecting a third motion vector used when previously encoding a third reference prediction block of the plurality of prediction blocks;
を含む工程と、A process comprising:
前記現在の予測ブロックを符号化する際に使用するために、前記動きベクトル候補の順序付きリストから動きベクトルを選択する工程と、Selecting a motion vector from the ordered list of candidate motion vectors for use in encoding the current prediction block;
前記符号化されたビットストリームにおける前記現在の予測ブロックのビデオデータ部分の一部を生成するために、選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程と、Encoding the current prediction block using a selected motion vector to generate a portion of the video data portion of the current prediction block in the encoded bitstream;
符号化された前記現在の予測ブロックのヘッダ部分に、前記選択された動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、Setting a motion vector selection flag indicating a position in an ordered list of the motion vector candidates corresponding to the selected motion vector in a header portion of the encoded current prediction block;
を備え、With
更に、前記符号化されたビットストリームのヘッダ部分に、前記符号化ブロックを符号化するために前記複数の符号化モードから選択された符号化モードを示す符号化モード選択フラグを設定する工程を備える方法。Setting a coding mode selection flag indicating a coding mode selected from the plurality of coding modes for coding the coding block in a header portion of the coded bit stream. Method.
符号化されていないビデオフレームを表す符号化されたビットストリームを生成するためにビデオフレームのシーケンスにおけるビデオフレームを符号化する方法であって、A method of encoding a video frame in a sequence of video frames to generate an encoded bitstream representing an unencoded video frame, the method comprising:
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、Obtaining a coded block from the uncoded video frame;
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode, a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
を備え、With
前記インター符号化モードが選択された場合には、更に、When the inter-coding mode is selected,
取得された前記符号化ブロックを複数の予測ブロックに分割する工程と、Dividing the obtained encoded block into a plurality of prediction blocks;
前記複数の予測ブロックのそれぞれの予測ブロックに対して、For each prediction block of the plurality of prediction blocks,
各前記予測ブロックを符号化する際に使用するために、中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、Selecting one motion vector prediction method from among the motion vector prediction method using an intermediate value and the motion vector prediction method using an average value, for use in encoding each of the prediction blocks;
前記符号化されたビットストリームにおける各前記予測ブロックのビデオデータ部分を生成するために、選択された動きベクトル予測方法に基づいて各前記予測ブロックを符号化する工程と、Encoding each of the prediction blocks based on a selected motion vector prediction method to generate a video data portion of each of the prediction blocks in the encoded bitstream;
符号化された各前記予測ブロックのヘッダ部分に、その予測ブロックの符号化に用いられた前記選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、Setting a selected motion vector prediction method flag indicating the selected motion vector prediction method used for encoding the prediction block in a header portion of each of the encoded prediction blocks;
を備え、With
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、When the skip encoding mode or the direct encoding mode is selected, further,
取得された前記符号化ブロックを現在の予測ブロックとして設定する工程と、Setting the obtained encoded block as a current prediction block;
前記現在の予測ブロックの動きベクトル候補の順序付きリストを取得する工程であって、Obtaining an ordered list of motion vector candidates for the current prediction block,
前記現在の予測ブロックに対する複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルを選択する工程と、Selecting a first motion vector used in previously encoding a first reference prediction block of a plurality of prediction blocks for the current prediction block;
前記複数の予測ブロックのうちの第2の参照予測ブロックを以前符号化する際に使用された第2の動きベクトルを選択する工程と、Selecting a second motion vector used when previously encoding a second reference prediction block of the plurality of prediction blocks;
ゼロ値動きベクトルを選択する工程と、Selecting a zero value motion vector;
を含む工程と、A process comprising:
前記現在の予測ブロックを符号化する際に使用するために、前記動きベクトル候補の順序付きリストから動きベクトルを選択する工程と、Selecting a motion vector from the ordered list of candidate motion vectors for use in encoding the current prediction block;
前記符号化されたビットストリームにおける前記現在の予測ブロックのビデオデータ部分の一部を生成するために、選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程と、Encoding the current prediction block using a selected motion vector to generate a portion of the video data portion of the current prediction block in the encoded bitstream;
符号化された前記現在の予測ブロックのヘッダ部分に、前記選択された動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、Setting a motion vector selection flag indicating a position in an ordered list of the motion vector candidates corresponding to the selected motion vector in a header portion of the encoded current prediction block;
を備え、With
更に、前記符号化されたビットストリームのヘッダ部分に、前記符号化ブロックを符号化するために前記複数の符号化モードから選択された符号化モードを示す符号化モード選択フラグを設定する工程を備える方法。Setting a coding mode selection flag indicating a coding mode selected from the plurality of coding modes for coding the coding block in a header portion of the coded bit stream. Method.
符号化されていないビデオフレームを表す符号化されたビットストリームを生成するためにビデオフレームのシーケンスにおけるビデオフレームを符号化する方法であって、A method of encoding a video frame in a sequence of video frames to generate an encoded bitstream representing an unencoded video frame, the method comprising:
前記符号化されていないビデオフレームから符号化ブロックを取得する工程と、Obtaining a coded block from the uncoded video frame;
前記符号化ブロックを符号化する際に使用するために、インター符号化モード、スキップ符号化モード、及び直接符号化モードを含む複数の符号化モードから一つの符号化モードを選択する工程と、Selecting one encoding mode from a plurality of encoding modes, including an inter encoding mode, a skip encoding mode, and a direct encoding mode, for use in encoding the encoded block;
を備え、With
前記インター符号化モードが選択された場合には、更に、When the inter-coding mode is selected,
取得された前記符号化ブロックを複数の予測ブロックに分割する工程と、Dividing the obtained encoded block into a plurality of prediction blocks;
前記複数の予測ブロックのそれぞれの予測ブロックに対して、For each prediction block of the plurality of prediction blocks,
各前記予測ブロックを符号化する際に使用するために、中間値を用いた動きベクトル予測方法及び平均値を用いた動きベクトル予測方法から一つの動きベクトル予測方法を選択する工程と、Selecting one motion vector prediction method from among the motion vector prediction method using an intermediate value and the motion vector prediction method using an average value, for use in encoding each of the prediction blocks;
前記符号化されたビットストリームにおける各前記予測ブロックのビデオデータ部分を生成するために、選択された動きベクトル予測方法に基づいて各前記予測ブロックを符号化する工程と、Encoding each of the prediction blocks based on a selected motion vector prediction method to generate a video data portion of each of the prediction blocks in the encoded bitstream;
符号化された各前記予測ブロックのヘッダ部分に、その予測ブロックの符号化に用いられた前記選択された動きベクトル予測方法を示す選択された動きベクトル予測方法フラグを設定する工程と、Setting a selected motion vector prediction method flag indicating the selected motion vector prediction method used for encoding the prediction block in a header portion of each of the encoded prediction blocks;
を備え、With
前記スキップ符号化モード又は前記直接符号化モードが選択された場合には、更に、When the skip encoding mode or the direct encoding mode is selected, further,
取得された前記符号化ブロックを現在の予測ブロックとして設定する工程と、Setting the obtained encoded block as a current prediction block;
前記現在の予測ブロックの動きベクトル候補の順序付きリストであって、An ordered list of motion vector candidates for the current prediction block,
前記現在の予測ブロックに対する複数の予測ブロックのうちの第1の参照予測ブロックを以前符号化する際に使用された第1の動きベクトルと、A first motion vector used when previously encoding a first reference prediction block of the plurality of prediction blocks for the current prediction block;
第1のゼロ値動きベクトルと、A first zero-valued motion vector;
第2のゼロ値動きベクトルと、A second zero-valued motion vector;
を含む順序付きリストを取得する工程と、Obtaining an ordered list containing
前記現在の予測ブロックを符号化する際に使用するために、前記動きベクトル候補の順序付きリストから動きベクトルを選択する工程と、Selecting a motion vector from the ordered list of candidate motion vectors for use in encoding the current prediction block;
前記符号化されたビットストリームにおける前記現在の予測ブロックのビデオデータ部分の一部を生成するために、選択された動きベクトルを使用して前記現在の予測ブロックを符号化する工程と、Encoding the current prediction block using a selected motion vector to generate a portion of the video data portion of the current prediction block in the encoded bitstream;
符号化された前記現在の予測ブロックのヘッダ部分に、前記選択された動きベクトルに対応する前記動きベクトル候補の順序付きリスト内の位置を示す動きベクトル選択フラグを設定する工程と、Setting a motion vector selection flag indicating a position in an ordered list of the motion vector candidates corresponding to the selected motion vector in a header portion of the encoded current prediction block;
を備え、With
更に、前記符号化されたビットストリームのヘッダ部分に、前記符号化ブロックを符号化するために前記複数の符号化モードから選択された符号化モードを示す符号化モード選択フラグを設定する工程を備える方法。Setting a coding mode selection flag indicating a coding mode selected from the plurality of coding modes for coding the coding block in a header portion of the coded bit stream. Method.
JP2017551080A 2015-03-31 2015-03-31 Motion vector selection and prediction method in video coding system Expired - Fee Related JP6678357B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/075599 WO2016154930A1 (en) 2015-03-31 2015-03-31 Motion vector selection and prediction in video coding systems and methods

Publications (2)

Publication Number Publication Date
JP2018513617A JP2018513617A (en) 2018-05-24
JP6678357B2 true JP6678357B2 (en) 2020-04-08

Family

ID=57005514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017551080A Expired - Fee Related JP6678357B2 (en) 2015-03-31 2015-03-31 Motion vector selection and prediction method in video coding system

Country Status (6)

Country Link
US (2) US10321150B2 (en)
EP (1) EP3278558B1 (en)
JP (1) JP6678357B2 (en)
KR (1) KR20180019509A (en)
CN (1) CN107534765B (en)
WO (1) WO2016154930A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10992950B2 (en) * 2017-02-23 2021-04-27 Realnetworks, Inc. Coding block bitstream structure and syntax in video coding systems and methods
WO2018169571A1 (en) * 2017-03-15 2018-09-20 Google Llc Segmentation-based parameterized motion models
KR102518167B1 (en) * 2017-11-30 2023-04-05 삼성전자주식회사 Method for processing image and electornic device thereof

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295203A (en) * 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
JP4114859B2 (en) 2002-01-09 2008-07-09 松下電器産業株式会社 Motion vector encoding method and motion vector decoding method
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
RU2420023C1 (en) * 2007-03-13 2011-05-27 Нокиа Корпорейшн System and method to code and decode video signals
US9787981B2 (en) 2011-01-19 2017-10-10 Renesas Electronics Corporation Image coding device and image decoding device
US9247266B2 (en) * 2011-04-18 2016-01-26 Texas Instruments Incorporated Temporal motion data candidate derivation in video coding
US9866859B2 (en) 2011-06-14 2018-01-09 Texas Instruments Incorporated Inter-prediction candidate index coding independent of inter-prediction candidate list construction in video coding
CN106791834B (en) * 2011-06-14 2020-07-10 三星电子株式会社 Method and apparatus for decoding image
KR102379457B1 (en) 2011-09-09 2022-03-28 엘지전자 주식회사 Inter prediction method and apparatus therefor
ES2728146T3 (en) * 2012-01-20 2019-10-22 Sun Patent Trust Video coding and decoding procedures and apparatus using temporal motion vector prediction
JP6020323B2 (en) 2012-04-12 2016-11-02 株式会社Jvcケンウッド Moving picture coding apparatus, moving picture coding method, moving picture coding program, transmission apparatus, transmission method, and transmission program
TWI578760B (en) * 2012-04-12 2017-04-11 Jvc Kenwood Corp Dynamic image decoding device, dynamic image decoding method and dynamic image decoding program

Also Published As

Publication number Publication date
US20190268619A1 (en) 2019-08-29
WO2016154930A1 (en) 2016-10-06
KR20180019509A (en) 2018-02-26
EP3278558A4 (en) 2018-11-07
US20180199053A1 (en) 2018-07-12
CN107534765B (en) 2020-10-02
EP3278558A1 (en) 2018-02-07
WO2016154930A8 (en) 2017-11-16
CN107534765A (en) 2018-01-02
EP3278558B1 (en) 2021-07-21
US10321150B2 (en) 2019-06-11
JP2018513617A (en) 2018-05-24

Similar Documents

Publication Publication Date Title
KR102542000B1 (en) History-based video coding method and apparatus
US10531086B2 (en) Residual transformation and inverse transformation in video coding systems and methods
JP7413557B2 (en) Video decoding method and device related to sign data hiding
US10735729B2 (en) Residual transformation and inverse transformation in video coding systems and methods
JP2022113815A (en) Image decoding method and apparatus based on affine motion prediction in image coding system
US20190268619A1 (en) Motion vector selection and prediction in video coding systems and methods
WO2018152749A1 (en) Coding block bitstream structure and syntax in video coding systems and methods
US10652569B2 (en) Motion vector selection and prediction in video coding systems and methods
JP7398003B2 (en) Video decoding method and device
US20190379890A1 (en) Residual transformation and inverse transformation in video coding systems and methods
JP6748657B2 (en) System and method for including adjunct message data in a compressed video bitstream
US11025925B2 (en) Condensed coding block headers in video coding systems and methods
US20200036967A1 (en) Motion vector selection and prediction in video coding systems and methods
US20210250579A1 (en) Intra-picture prediction in video coding systems and methods

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200121

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200310

R150 Certificate of patent or registration of utility model

Ref document number: 6678357

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees