(57)【要約】  ディスプレイストリーム圧縮における変換モード用のブロックサイズの変更のための方法および装置が開示される。一態様では、方法は、ビデオデータの現在のブロックおよび次のブロックを選択するステップと、大型ブロックサイズ変換(LBT)モードを用いて現在のブロックおよび次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算するステップと、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算するステップとを伴う。方法は、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定するステップと、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングするステップとをさらに伴い得る。
2018525901.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータをコーディングするための複数のコーディングモードの中からコーディングモードを選択するためにビデオコーディング回路によって動作可能な方法であって、
前記ビデオデータの現在のブロックおよび次のブロックを選択するステップと、
大型ブロックサイズ変換(LBT)モードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算するステップと、
前記LBTモードとは異なる別のコーディングモードを用いて前記現在のブロックおよび前記次のブロックの各々をコーディングするための第2のRDコストを計算するステップと、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するステップと、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするステップと
を備える方法。
【請求項２】
前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択するステップと、
前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするための更新された第1のRDコストを計算するステップと、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算するステップと、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するステップと、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
i)前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいこと、ならびにii)前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするステップをさらに備える、請求項2に記載の方法。
【請求項４】
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、他のコーディングモードを用いて前記現在のブロックをコーディングするステップをさらに備える、請求項1に記載の方法。
【請求項５】
前記LBTモードとは異なる別のコーディングモードを用いて前記現在のブロックおよび前記次のブロックの各々をコーディングするための第2のRDコストを計算するステップが、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記現在のブロックをコーディングするための複数の第3のRDコストを計算するステップと、
前記計算された第3のRDコストの中から最小の第3のRDコストを決定するステップと、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記次のブロックをコーディングするための複数の第4のRDコストを計算するステップと、
前記計算された第4のRDコストの中から最小の第4のRDコストを決定するステップとを備え、
前記第2のRDコストが、前記最小の第3のRDコストと前記最小の第4のRDコストとの合計である、
請求項1に記載の方法。
【請求項６】
以下の条件、すなわち、(i)パターンモードが最適なコーディングモードであると決定されること、(ii)平坦ブロックが検出されること、(iii)複雑領域から平坦領域への遷移が検出されること、および(iv)平坦領域から複雑領域への遷移が検出されることのうちの1つまたは複数が、前記現在のブロックまたは前記次のブロックのいずれかに対して満たされることに応答して、前記第1のRDコストを計算するのを控えるステップをさらに備える、請求項1に記載の方法。
【請求項７】
前記現在のブロックから始まるMmin個のブロックを前記LBTモードを用いてコーディングするための第3のRDコストを計算するステップと、
前記Mmin個のブロックの各々を前記LBTモードとは異なる別のコーディングモードを用いてコーディングするための第4のRDコストを計算するステップと、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの合計よりも小さいかどうかを決定するステップと、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックをコーディングするステップと
をさらに備える、請求項1に記載の方法。
【請求項８】
前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択するステップと、
前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするための更新された第1のRDコストを計算するステップと、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算するステップと、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するステップと、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするステップと
をさらに備える、請求項7に記載の方法。
【請求項９】
前記Mmin個のブロックおよび前記追加のブロックに別の追加のブロックを追加することが、Mmaxよりも大きいLBTブロックサイズに達することになるかどうかを決定するステップと、
前記Mmin個のブロックおよび前記追加のブロックに別の追加のブロックを追加することが、Mmaxよりも大きいLBTブロックサイズに達することになるという決定に応答して、前記Mmin個のブロックおよび前記追加のブロックに前記別の追加のブロックを追加するのを控えるステップと
をさらに備える、請求項8に記載の方法。
【請求項１０】
ビデオデータをコーディングするための複数のコーディングモードの中からコーディングモードを選択するためのデバイスであって、
前のブロックおよび現在のブロックを含むビデオデータを記憶するように構成されたメモリと、
前記メモリに結合された少なくとも1つのプロセッサ回路とを備え、前記プロセッサ回路が、
前記ビデオデータの現在のブロックおよび次のブロックを選択し、
大型ブロックサイズ変換(LBT)モードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算し、
前記LBTモードとは異なる別のコーディングモードを用いて前記現在のブロックおよび前記次のブロックの各々をコーディングするための第2のRDコストを計算し、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定し、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするように構成される、
デバイス。
【請求項１１】
前記プロセッサ回路が、
前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択し、
前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするための更新された第1のRDコストを計算し、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算し、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定し、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするようにさらに構成される、
請求項10に記載のデバイス。
【請求項１２】
前記プロセッサ回路が、i)前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいこと、ならびにii)前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするようにさらに構成される、請求項11に記載のデバイス。
【請求項１３】
前記プロセッサ回路が、前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、他のコーディングモードを用いて前記現在のブロックをコーディングするようにさらに構成される、請求項10に記載のデバイス。
【請求項１４】
前記プロセッサ回路が、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記現在のブロックをコーディングするための複数の第3のRDコストを計算し、
前記計算された第3のRDコストの中から最小の第3のRDコストを決定し、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記次のブロックをコーディングするための複数の第4のRDコストを計算し、
前記計算された第4のRDコストの中から最小の第4のRDコストを決定するようにさらに構成され、
前記第2のRDコストが、前記最小の第3のRDコストと前記最小の第4のRDコストとの合計である、
請求項10に記載のデバイス。
【請求項１５】
前記プロセッサ回路が、以下の条件、すなわち、(i)パターンモードが最適なコーディングモードであると決定されること、(ii)平坦ブロックが検出されること、(iii)複雑領域から平坦領域への遷移が検出されること、および(iv)平坦領域から複雑領域への遷移が検出されることのうちの1つまたは複数が、前記現在のブロックまたは前記次のブロックのいずれかに対して満たされることに応答して、前記第1のRDコストを計算するのを控えるようにさらに構成される、請求項10に記載のデバイス。
【請求項１６】
前記プロセッサ回路が、
前記現在のブロックから始まるMmin個のブロックを前記LBTモードを用いてコーディングするための第3のRDコストを計算し、
前記Mmin個のブロックの各々を前記LBTモードとは異なる別のコーディングモードを用いてコーディングするための第4のRDコストを計算し、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの合計よりも小さいかどうかを決定し、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックをコーディングするようにさらに構成される、
請求項10に記載のデバイス。
【請求項１７】
前記プロセッサ回路が、
前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択し、
前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするための更新された第1のRDコストを計算し、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算し、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定し、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするようにさらに構成される、
請求項16に記載のデバイス。
【請求項１８】
ビデオデータの現在のブロックおよび次のブロックを選択するための手段と、
大型ブロックサイズ変換(LBT)モードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算するための手段と、
前記LBTモードとは異なる別のコーディングモードを用いて前記現在のブロックおよび前記次のブロックの各々をコーディングするための第2のRDコストを計算するための手段と、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するための手段と、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための手段と
を備える装置。
【請求項１９】
前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択するための手段と、
前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするための更新された第1のRDコストを計算するための手段と、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算するための手段と、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するための手段と、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするための手段と
をさらに備える、請求項18に記載の装置。
【請求項２０】
i)前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいこと、ならびにii)前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための手段をさらに備える、請求項19に記載の装置。
【請求項２１】
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、他のコーディングモードを用いて前記現在のブロックをコーディングするための手段をさらに備える、請求項18に記載の装置。
【請求項２２】
前記LBTモード以外の複数のコーディングモードの各々を用いて前記現在のブロックをコーディングするための複数の第3のRDコストを計算するための手段と、
前記計算された第3のRDコストの中から最小の第3のRDコストを決定するための手段と、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記次のブロックをコーディングするための複数の第4のRDコストを計算するための手段と、
前記計算された第4のRDコストの中から最小の第4のRDコストを決定するための手段とをさらに備え、
前記第2のRDコストが、前記最小の第3のRDコストと前記最小の第4のRDコストとの合計である、
請求項18に記載の装置。
【請求項２３】
以下の条件、すなわち、(i)パターンモードが最適なコーディングモードであると決定されること、(ii)平坦ブロックが検出されること、(iii)複雑領域から平坦領域への遷移が検出されること、および(iv)平坦領域から複雑領域への遷移が検出されることのうちの1つまたは複数が、前記現在のブロックまたは前記次のブロックのいずれかに対して満たされることに応答して、前記第1のRDコストを計算するのを控えるための手段をさらに備える、請求項18に記載の装置。
【請求項２４】
前記現在のブロックから始まるMmin個のブロックを前記LBTモードを用いてコーディングするための第3のRDコストを計算するための手段と、
前記Mmin個のブロックの各々を前記LBTモードとは異なる別のコーディングモードを用いてコーディングするための第4のRDコストを計算するための手段と、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの合計よりも小さいかどうかを決定するための手段と、
前記Mmin個のブロックに対して前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックをコーディングするための手段と
をさらに備える、請求項18に記載の装置。
【請求項２５】
前記第3のRDコストが前記第4のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択するための手段と、
前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするための更新された第1のRDコストを計算するための手段と、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算するための手段と、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定するための手段と、
前記Mmin個のブロックおよび前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記Mmin個のブロックおよび前記追加のブロックをコーディングするための手段と
をさらに備える、請求項24に記載の装置。
【請求項２６】
その上に記憶された命令を有する非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、デバイスのプロセッサに、
ビデオデータから現在のブロックおよび次のブロックを選択させ、
大型ブロックサイズ変換(LBT)モードを用いて前記現在のブロックおよび前記次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算させ、
前記LBTモードとは異なる別のコーディングモードを用いて前記現在のブロックおよび前記次のブロックの各々をコーディングするための第2のRDコストを計算させ、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定させ、
前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングさせる、
非一時的コンピュータ可読記憶媒体。
【請求項２７】
実行されたとき、前記プロセッサに、
前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記ビデオデータの追加のブロックを選択させ、
前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングするための更新された第1のRDコストを計算させ、
他のコーディングモードを用いて前記追加のブロックをコーディングするための第2のRDコストを計算させ、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの合計よりも小さいかどうかを決定させ、
前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さいことに応答して、前記LBTモードを用いて前記現在のブロック、前記次のブロック、および前記追加のブロックをコーディングさせる、
その上に記憶された命令をさらに有する、請求項26に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
実行されたとき、前記プロセッサに、i)前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さいこと、ならびにii)前記現在のブロック、前記次のブロック、および前記追加のブロックに対して、前記更新された第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、前記LBTモードを用いて前記現在のブロックおよび前記次のブロックをコーディングさせる、その上に記憶された命令をさらに有する、請求項27に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
実行されたとき、前記プロセッサに、前記現在のブロックおよび前記次のブロックに対して前記第1のRDコストが前記第2のRDコストの前記合計よりも小さくないことに応答して、他のコーディングモードを用いて前記現在のブロックをコーディングさせる、その上に記憶された命令をさらに有する、請求項26に記載の非一時的コンピュータ可読記憶媒体。
【請求項３０】
実行されたとき、前記プロセッサに、
前記LBTモード以外の複数のコーディングモードの各々を用いて前記現在のブロックをコーディングするための複数の第3のRDコストを計算させ、
前記計算された第3のRDコストの中から最小の第3のRDコストを決定させ、
前記LBTモード以外の前記複数のコーディングモードの各々を用いて前記次のブロックをコーディングするための複数の第4のRDコストを計算させ、
前記計算された第4のRDコストの中から最小の第4のRDコストを決定させる、その上に記憶された命令をさらに有し、
前記第2のRDコストが、前記最小の第3のRDコストと前記最小の第4のRDコストとの合計である、
請求項26に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングおよび圧縮の分野に関し、詳細には、ディスプレイストリーム圧縮などの、ディスプレイリンクを介した送信用のビデオ圧縮に関する。
【背景技術】
【０００２】
デジタルビデオ能力は、デジタルテレビジョン、携帯情報端末(PDA)、ラップトップコンピュータ、デスクトップモニタ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ遠隔会議デバイスなどを含む、広範囲のディスプレイに組み込まれ得る。ディスプレイを適切なソースデバイスに接続するために、ディスプレイリンクが使用される。ディスプレイリンクの帯域幅要件は、ディスプレイの解像度に比例し、したがって、高解像度ディスプレイは大帯域幅ディスプレイリンクを必要とする。いくつかのディスプレイリンクは、高解像度ディスプレイをサポートするための帯域幅を有しない。より小さい帯域幅のディスプレイリンクが高解像度ディスプレイにデジタルビデオを提供するために使用され得るように、ビデオ圧縮が使用されて帯域幅要件を低減することができる。
【０００３】
他のやり方では、ピクセルデータにおいて画像圧縮を利用することを試みた。しかしながら、そのような方式は、時には視覚的ロスレスでなく、または従来のディスプレイデバイスにおいて実施するのに困難かつ高価なことがある。
【０００４】
ディスプレイリンクビデオ圧縮のための規格として、ビデオエレクトロニクス規格協会(VESA)がディスプレイストリーム圧縮(DSC:display stream compression)を開発した。DSCなどのディスプレイリンクビデオ圧縮技法は、特に、視覚的ロスレスである(すなわち、圧縮がアクティブであることがユーザにわからないようなレベルの品質をピクチャが有する)ピクチャ品質を提供すべきである。ディスプレイリンクビデオ圧縮技法はまた、従来のハードウェアを用いてリアルタイムで実施するのに容易かつ安価な方式を提供すべきである。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示のシステム、方法、およびデバイスは各々、いくつかの発明的態様を有し、それらの態様はどれも、本明細書で開示する望ましい属性を単独で担うものでない。
【０００６】
一態様では、方法は、ビデオデータをコーディングするための複数のコーディングモードの中からコーディングモードを選択するために、ビデオコーディング回路によって動作可能であり、ビデオデータの現在のブロックおよび次のブロックを選択することと、大型ブロックサイズ変換(LBT:larger block size transform)モードを用いて現在のブロックおよび次のブロックをコーディングするための第1のレートひずみ(RD:rate-distortion)コストを計算することと、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算することと、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定することと、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングすることとを含む。
【０００７】
別の態様では、ビデオデータをコーディングするための複数のコーディングモードの中からコーディングモードを選択するためのデバイスは、前のブロックおよび現在のブロックを含むビデオデータを記憶するように構成されたメモリと、メモリに結合された少なくとも1つのプロセッサ回路とを含み、プロセッサ回路は、ビデオデータの現在のブロックおよび次のブロックを選択し、大型ブロックサイズ変換(LBT)モードを用いて現在のブロックおよび次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算し、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算し、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定し、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングするように構成される。
【０００８】
別の態様では、装置は、ビデオデータの現在のブロックおよび次のブロックを選択するための手段と、大型ブロックサイズ変換(LBT)モードを用いて現在のブロックおよび次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算するための手段と、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算するための手段と、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定するための手段と、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングするための手段とを含む。
【０００９】
また別の態様では、非一時的コンピュータ可読記憶媒体は、その上に記憶された命令を有し、命令は、実行されたとき、デバイスのプロセッサに、ビデオデータから現在のブロックおよび次のブロックを選択させ、大型ブロックサイズ変換(LBT)モードを用いて現在のブロックおよび次のブロックをコーディングするための第1のレートひずみ(RD)コストを計算させ、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算させ、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定させ、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングさせる。
【図面の簡単な説明】
【００１０】
【図１Ａ】本開示で説明する態様による技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図である。
【図１Ｂ】本開示で説明する態様による技法を実行し得る別の例示的なビデオ符号化および復号システムを示すブロック図である。
【図２Ａ】本開示で説明する態様による技法を実施し得るビデオエンコーダの一例を示すブロック図である。
【図２Ｂ】本開示で説明する態様による技法を実施し得るビデオデコーダの一例を示すブロック図である。
【図３】本開示で説明する態様による技法を実施し得るビデオエンコーダの別の例を示すブロック図である。
【図４Ａ】本開示で説明する態様による技法を実施し得る大型ブロックサイズ変換(LBT)モードの一例を示すブロック図である。
【図４Ｂ】本開示で説明する態様による技法を実施し得るLBTモードの一例を示すブロック図である。
【図５】本開示で説明する態様によるLBTモードを組み込み得るコーディングモードの例示的な方法を示すフローチャートである。
【図６】本開示で説明する態様によるLBTモードを実施するための方法を示すフローチャートである。
【発明を実施するための形態】
【００１１】
一般に、本開示は、たとえば、ディスプレイストリーム圧縮(DSC)などのビデオ圧縮技法を改善する方法に関する。より詳細には、本開示は、量子化パラメータ(QP)調整値を計算するための適切な技法の選択により、量子化パラメータ(QP)の更新を改善するためのシステムおよび方法に関する。
【００１２】
いくつかの実施形態がDSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法が、任意の適切なビデオコーディング規格に適用可能であり得ることが当業者には諒解されよう。たとえば、本明細書で開示する実施形態は、以下の規格、すなわち、国際電気通信連合(ITU)電気通信規格化部門(ITU-T)H.261、国際標準化機構/国際電気標準会議(ISO/IEC)ムービングピクチャエキスパートグループ1(MPEG-1)Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)、高効率ビデオコーディング(HEVC)、およびそのような規格の任意の拡張のうちの、1つまたは複数に適用可能であり得る。本明細書で説明する技法は、詳細には、固定ビットレート(CBR:constant bit rate)バッファモデルを組み込む規格に適用可能であり得る。また、本開示で説明する技法は、将来において開発される規格の一部になり得る。言い換えれば、本開示で説明する技法は、以前に開発されたビデオコーディング規格、現在開発中のビデオコーディング規格、および次のビデオコーディング規格に適用可能であり得る。
【００１３】
ビデオコーディング方法は、前に計算されたQP値を、QP調整値を用いて更新することによってQP値を計算し得る。QP調整値は、前のブロックと現在のブロックとの間の差分、たとえば、前のブロックをコーディングするのに必要とされたビットと現在のブロックをコーディングするためのターゲットビット数との差分に基づいて計算され得る。
【００１４】
しかしながら、従来の技法によって決定されるQP調整値は、コーディングの非効率性をもたらすことがあり、またはいくつかの状況下で顕著なアーティファクトを引き起こすことがある。たとえば、QP調整値を決定するための従来の技法は、画像の平坦領域から複雑領域への遷移にとって十分にアグレッシブではないことがある(たとえば、QP調整値が、顕著なアーティファクトを伴わずにより良好なコーディング効率をもたらすことになる、より望ましいQP調整値よりも小さいことがある)。平坦領域および複雑領域の概念は、以下でより詳細に説明される。
【００１５】
追加として、バッファのフルネスがエンプティまたはフルであるというしきい値内にあるとき、QP調整値を計算するための従来の技法は過度にアグレッシブであり得、デコーダによって再構成される画像においてアーティファクトを生じることがある。たとえば、従来の技法によって計算されるQP調整値は、再構成画像においてアーティファクトが目立たないようにマスクすることになる、より望ましいQP調整値よりも大きいことがある。
【００１６】
したがって、本開示の態様は、少なくとも上記で示した問題を解決することを対象とする。いくつかの態様において、このことは、上記で示した問題に関連し得る条件の検出または決定、および検出された条件下でQP調整値を計算するための1つまたは複数の代替技法を適用することにより、達成され得る。
【００１７】
ビデオコーディング規格
ビデオ画像、TV画像、静止画像、またはビデオレコーダもしくはコンピュータによって生成された画像などのデジタル画像は、水平ラインおよび垂直ラインをなして配列されたピクセルまたはサンプルを含み得る。単一の画像の中のピクセル数は、通常、数万である。各ピクセルは、通常、ルミナンス情報およびクロミナンス情報を含む。圧縮を用いないと、画像エンコーダから画像デコーダへ伝えられるべき莫大な量の情報が、リアルタイム画像送信を非実用的にさせることになる。送信されるべき情報の量を低減するために、JPEG、MPEG、およびH.263規格などの、いくつかの異なる圧縮方法が開発されている。
【００１８】
ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)、およびそのような規格の拡張を含むHEVCを含む。
【００１９】
加えて、ビデオコーディング規格、すなわちDSCが、VESAによって開発された。DSC規格は、ディスプレイリンクを介した送信用にビデオを圧縮することができるビデオ圧縮規格である。ディスプレイの解像度が増大するにつれて、ディスプレイを駆動するのに必要なビデオデータの帯域幅は、それに相応して増大する。いくつかのディスプレイリンクは、そのような解像度にとって、ビデオデータのすべてをディスプレイへ送信するための帯域幅を有しないことがある。したがって、DSC規格は、相互動作可能な、ディスプレイリンクを介した視覚的ロスレス圧縮のための圧縮規格を規定する。
【００２０】
DSC規格は、H.264およびHEVCなどの他のビデオコーディング規格とは異なる。DSCは、フレーム内圧縮を含むがフレーム間圧縮は含まず、そのことは、ビデオデータをコーディングする際に時間情報がDSC規格によって使用され得ないことを意味する。対照的に、他のビデオコーディング規格は、それらのビデオコーディング技法においてフレーム間圧縮を採用し得る。
【００２１】
ビデオコーディングシステム
新規のシステム、装置、および方法の様々な態様が、添付の図面を参照しながら以下でより十分に説明される。ただし、本開示は、多くの異なる形態で具現化されてよく、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきでない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように提供される。本明細書の教示に基づいて、本開示の範囲が、本開示の任意の他の態様とは無関係に実施されるにせよ、本開示の任意の他の態様と組み合わせて実施されるにせよ、本明細書で開示する新規のシステム、装置、および方法のいかなる態様もカバーするものであることを、当業者なら諒解されたい。たとえば、本明細書に記載した任意の数の態様を使用して、装置が実装されてよく、または方法が実践されてよい。加えて、本開示の範囲は、本明細書に記載した本開示の様々な態様に加えて、またはそうした態様以外に、他の構造、機能、または構造および機能を使用して実践されるような装置または方法をカバーするものとする。本明細書で開示する任意の態様が特許請求の範囲の1つまたは複数の要素によって具現化され得ることが理解されるべきである。
【００２２】
特定の態様が本明細書で説明されるが、これらの態様の多くの変形および置換が、本開示の範囲内である。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であることが意図され、そのうちのいくつかが例として図面および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、限定的でなく、本開示の例示にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００２３】
添付の図面は例を示す。添付の図面において参照番号によって示される要素は、以下の説明において同様の参照番号によって示される要素に相当する。本開示では、序数語(たとえば、「第1の」、「第2の」、「第3の」など)で始まる名称を有する要素は、必ずしもそれらの要素が特定の順序を有することを暗示するとは限らない。むしろ、そのような序数語は、同じまたは類似のタイプの異なる要素を指すために使用されるにすぎない。
【００２４】
図1Aは、本開示で説明する態様による技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用および説明する「ビデオコーダ」または「コーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化およびビデオ復号を総称的に指すことがある。ビデオエンコーダおよびビデオデコーダに加えて、本出願で説明する態様は、トランスコーダ(たとえば、ビットストリームを復号することができ、別のビットストリームを再符号化することができるデバイス)およびミドルボックス(たとえば、ビットストリームを修正、変換、および/または別の方法で操作することができるデバイス)などの、他の関連するデバイスに拡張され得る。
【００２５】
図1Aに示すように、ビデオコーディングシステム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。図1Aの例において、ソースデバイス12および宛先デバイス14は、別個のデバイスを構成する。ただし、ソースデバイス12および宛先デバイス14が、図1Bの例に示すように同じデバイス上にあるか、またはその一部であってよいことに留意されたい。
【００２６】
図1Aをもう一度参照すると、ソースデバイス12および宛先デバイス14は、それぞれ、デスクトップコンピュータ、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、ビデオストリーミングデバイス、アイウェアおよび/またはウェアラブルコンピュータなどのエンティティ(たとえば、人間、動物、および/または別の制御されたデバイス)によって(エンティティに)装着可能である(または、着脱可能に取付け可能な)デバイス、エンティティ内で消費され、取り込まれ、または配置され得るデバイスまたは装置などを含む、広範囲のデバイスのいずれかを備え得る。様々な実施形態において、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【００２７】
宛先デバイス14は、復号されるべき符号化ビデオデータを、リンク16を介して受信し得る。リンク16は、ソースデバイス12から宛先デバイス14へ符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。図1Aの例では、リンク16は、ソースデバイス12が符号化ビデオデータをリアルタイムで宛先デバイス14へ送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され得、宛先デバイス14へ送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの、任意のワイヤレス通信媒体または有線通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどの、パケットベースネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有用であり得る任意の他の機器を含み得る。
【００２８】
図1Aの例では、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せなどのソースを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、図1Bの例に示すように、いわゆる「カメラフォン」または「ビデオフォン」を形成し得る。しかしながら、本開示で説明する技法は、一般に、ビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線の用途に適用され得る。
【００２９】
キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14へ送信され得る。符号化ビデオデータは、同様に(または、代替として)、復号および/または再生のために宛先デバイス14または他のデバイスによって後でアクセスできるように、記憶デバイス31上に記憶され得る。図1Aおよび図1Bに示すビデオエンコーダ20は、図2Aに示すビデオエンコーダ20または本明細書で説明する任意の他のビデオエンコーダを備え得る。
【００３０】
図1Aの例では、宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。場合によっては、入力インターフェース28は、受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して、かつ/または記憶デバイス31から、符号化ビデオデータを受信し得る。リンク16を介して通信されるかまたは記憶デバイス31上で提供される符号化ビデオデータは、ビデオデータを復号する際にビデオデコーダ30などのビデオデコーダによる使用のために、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含められてよい。図1Aおよび図1Bに示すビデオデコーダ30は、図2Bに示すビデオデコーダ30または本明細書で説明する任意の他のビデオデコーダを備え得る。
【００３１】
ディスプレイデバイス32は、宛先デバイス14と統合されてよく、またはその外部にあってもよい。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含んでよく、外部ディスプレイデバイスとインターフェースするように構成されてもよい。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのいずれかを備え得る。
【００３２】
関連する態様では、図1Bは、ソースデバイス12および宛先デバイス14がデバイス11上にあるかまたはその一部である、例示的なビデオコーディングシステム10'を示す。デバイス11は、「スマート」フォンなどの電話ハンドセットであってよい。デバイス11は、ソースデバイス12および宛先デバイス14と動作可能に通信するプロセッサ/コントローラデバイス13(随意に存在する)を含み得る。図1Bのビデオコーディングシステム10'およびその構成要素は、図1Aのビデオコーディングシステム10およびその構成要素と場合によっては類似である。
【００３３】
ビデオエンコーダ20およびビデオデコーダ30は、DSCなどのビデオ圧縮規格に従って動作し得る。代替として、ビデオエンコーダ20およびビデオデコーダ30は、MPEG-4、Part 10、AVC、HEVCと代替的に呼ばれるITU-T H.264規格などの他のプロプライエタリ規格もしくは業界規格、またはそのような規格の拡張に従って動作し得る。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例は、MPEG-2およびITU-T H.263を含む。
【００３４】
図1Aおよび図1Bの例に示さないが、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびオーディオデコーダと統合されてよく、共通のデータストリームまたは別個のデータストリームの中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【００３５】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの、様々な適切なエンコーダ回路構成のいずれかとして実装され得る。技法が部分的にソフトウェアで実装されるとき、デバイスは、適切な非一時的コンピュータ可読媒体の中にソフトウェア用の命令を記憶し、本開示の技法を実行するための1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、それらのいずれもが、複合エンコーダ/デコーダの一部としてそれぞれのデバイスの中に統合されてよい。
【００３６】
ビデオコーディングプロセス
上で簡略に述べたように、ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは、1つまたは複数のピクチャを備え得る。ピクチャの各々は、ビデオの一部を形成する静止画像である。いくつかの事例では、ピクチャはビデオ「フレーム」と呼ばれ得る。ビデオエンコーダ20がビデオデータを符号化するとき、ビデオエンコーダ20はビットストリームを生成し得る。ビットストリームは、ビデオデータのコード化表現を形成するビットのシーケンスを含み得る。ビットストリームは、コード化ピクチャおよび関連データを含み得る。コード化ピクチャは、ピクチャのコード化表現である。
【００３７】
ビットストリームを生成するために、ビデオエンコーダ20は、ビデオデータの中の各ピクチャにおいて符号化動作を実行し得る。ビデオエンコーダ20がピクチャにおいて符号化動作を実行するとき、ビデオエンコーダ20は、一連のコード化ピクチャおよび関連データを生成し得る。関連データは、QPなどのコーディングパラメータのセットを含み得る。コード化ピクチャを生成するために、ビデオエンコーダ20は、等しいサイズのビデオブロックにピクチャを区分し得る。ビデオブロックは、サンプルの2次元アレイであり得る。コーディングパラメータは、ビデオデータのすべてのブロックに対してコーディングオプション(たとえば、コーディングモード)を規定し得る。コーディングオプションは、所望のレートひずみ性能を達成するように選択され得る。
【００３８】
いくつかの例では、ビデオエンコーダ20は、ピクチャを複数のスライスに区分し得る。スライスの各々は、画像またはフレームの中の領域の残りからの情報なしに独立して復号され得る、画像(たとえば、フレーム)の中の空間的に別個の領域を含み得る。各画像またはビデオフレームは単一のスライスの中で符号化されてよく、あるいは各画像またはビデオフレームはいくつかのスライス中で符号化されてもよい。DSCでは、各スライスを符号化するために割り振られるターゲットビットは、実質的に固定であり得る。ピクチャにおいて符号化動作を実行することの一部として、ビデオエンコーダ20は、ピクチャの各スライスにおいて符号化動作を実行し得る。ビデオエンコーダ20がスライスにおいて符号化動作を実行するとき、ビデオエンコーダ20は、スライスに関連する符号化データを生成し得る。スライスに関連する符号化データは、「コード化スライス」と呼ばれることがある
【００３９】
DSCビデオエンコーダ
図2Aは、本開示で説明する態様による技法を実施し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、本開示の技法のうちの一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオエンコーダ20の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のうちの一部または全部を実行するように構成され得る。
【００４０】
説明の目的で、本開示は、DSCコーディングのコンテキストにおいてビデオエンコーダ20を説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００４１】
図2Aの例では、ビデオエンコーダ20は、複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、色空間変換器105、バッファ110、平坦度検出器115、レートコントローラ120、予測器、量子化器、および再構成器構成要素125、ラインバッファ130、インデックス付き色履歴135、エントロピーエンコーダ140、サブストリームマルチプレクサ145、ならびにレートバッファ150を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【００４２】
色空間変換器105は、入力色空間を、コーディング実施において使用される色空間に変換し得る。たとえば、例示的な一実施形態では、入力ビデオデータの色空間は、赤、緑、および青(RGB)色空間にあり、コーディングは、ルミナンスY、クロミナンス緑Cg、およびクロミナンス橙Co(YCgCo)色空間において実施される。色空間変換は、ビデオデータへのシフトおよび加算を含む方法によって実行され得る。他の色空間における入力ビデオデータが処理されてよく、他の色空間への変換も実行され得ることに留意されたい。
【００４３】
関連する態様では、ビデオエンコーダ20は、バッファ110、ラインバッファ130、および/またはレートバッファ150を含み得る。たとえば、バッファ110は、色空間変換されたビデオデータを、ビデオエンコーダ20の他の部分によるそれの使用の前に保持し得る。別の例では、色空間変換されたデータはより多くのビットを必要とし得るので、ビデオデータがRGB色空間において記憶されてよく、色空間変換は必要に応じて実行されてよい。
【００４４】
レートバッファ150は、レートコントローラ120に関して以下でより詳細に説明する、ビデオエンコーダ20の中のレート制御機構の一部として機能し得る。各ブロックを符号化するのに費やされるビットは、ブロックの性質に基づいてかなり大幅に変わることがある。レートバッファ150は、圧縮ビデオにおけるレート変動を平滑化することができる。いくつかの実施形態では、ビットが固定ビットレートでバッファから取り出されるCBRバッファモデルが採用される。CBRバッファモデルでは、ビデオエンコーダ20がビットストリームにあまりにも多くのビットを追加した場合、レートバッファ150はオーバーフローし得る。一方、ビデオエンコーダ20は、レートバッファ150のアンダーフローを防止するために、十分なビットを追加しなければならない。
【００４５】
ビデオデコーダ側において、ビットは、ビデオデコーダ30のレートバッファ155(以下でさらに詳細に説明する図2Bを参照)に固定ビットレートで追加されてよく、ビデオデコーダ30は、ブロックごとに可変数のビットを除去してよい。適正な復号を確実にするために、ビデオデコーダ30のレートバッファ155は、圧縮ビットストリームの復号中に「アンダーフロー」も「オーバーフロー」もすべきでない。
【００４６】
いくつかの実施形態では、バッファフルネス(BF:buffer fullness)は、現在バッファの中にあるビットの数を表す値BufferCurrentSizeと、レートバッファ150のサイズを表すBufferMaxSize、すなわち、任意の時点においてレートバッファ150に記憶され得るビットの最大数とに基づいて、規定され得る。BFは、次のように計算され得る。
BF=((BufferCurrentSize*100)/BufferMaxSize)
【００４７】
BFを計算するための上記の手法は例にすぎず、BFが、特定の実装形態またはコンテキストに応じて任意の数の異なる方法で計算され得ることに留意されたい。
【００４８】
平坦度検出器115は、ビデオデータの中の複雑(すなわち、非平坦)エリアから、ビデオデータの中の平坦(すなわち、単純または均一)エリアへの変化を検出することができ、および/またはその逆も同様である。「複雑」および「平坦」という用語は、概して、ビデオエンコーダ20がビデオデータのそれぞれの領域を符号化することの難しさを指すために本明細書で使用される。したがって、本明細書で使用する複雑という用語は、概して、ビデオエンコーダ20が符号化するのが複雑であるものとしてビデオデータの領域を記述し、たとえば、テクスチャードビデオデータ、高い空間周波数、および/または符号化するのが複雑である他の特徴を含み得る。本明細書で使用する平坦という用語は、概して、ビデオエンコーダ20が符号化するのが簡単であるものとしてビデオデータの領域を記述し、たとえば、ビデオデータにおける平滑勾配、低い空間周波数、および/または符号化するのが簡単である他の特徴を含み得る。複雑領域から平坦領域への遷移は、符号化ビデオデータにおける量子化アーティファクトを低減するためにビデオエンコーダ20によって使用され得る。詳細には、複雑領域から平坦領域への遷移が識別されると、レートコントローラ120ならびに予測器、量子化器、および再構成器構成要素125が、そのような量子化アーティファクトを低減することができる。同様に、平坦領域から複雑領域への遷移は、現在のブロックをコーディングするのに必要な予想レートを下げるために、QPを増大させるためにビデオエンコーダ20によって使用され得る。
【００４９】
レートコントローラ120は、コーディングパラメータのセット、たとえば、QPを決定する。QPは、レートバッファ150がオーバーフローもアンダーフローもしないことを確実にするターゲットビットレートに対してピクチャ品質を最大にするために、レートバッファ150のバッファフルネスおよびビデオデータの画像活動度(たとえば、複雑領域から平坦領域への遷移、またはその逆の遷移)に基づいて、レートコントローラ120によって調節され得る。レートコントローラ120はまた、最適なレートひずみ性能を達成するために、ビデオデータのブロックごとに特定のコーディングオプション(たとえば、特定のモード)を選択する。レートコントローラ120は、ビットレート制約を満たすように、すなわち、実際のコーディングレート全体がターゲットビットレート内に収まるように、再構成画像のひずみを最小限に抑える。したがって、レートコントローラ120の1つの目的は、レートひずみ性能を最大にしながら、レートにおける瞬間的および平均的な制約を満たすために、QP、コーディングモードなどのコーディングパラメータのセットを決定することである。
【００５０】
予測器、量子化器、および再構成器構成要素125は、ビデオエンコーダ20の少なくとも3つの符号化動作を実行し得る。予測器、量子化器、および再構成器構成要素125は、いくつかの異なるモードで予測を実行し得る。1つの例示的な予測モードが、メディアン適応予測の修正バージョンである。メディアン適応予測は、ロスレスJPEG規格(JPEG-LS)によって実施され得る。予測器、量子化器、および再構成器構成要素125によって実行され得るメディアン適応予測の修正バージョンは、3つの連続するサンプル値の並列予測を可能にし得る。別の例示的な予測モードは、ブロック予測である。ブロック予測では、サンプルは、上のラインの中の、または同じラインの中で左の、前に再構成されたピクセルから予測される。いくつかの実施形態では、ビデオエンコーダ20およびビデオデコーダ30は両方とも、ブロック予測の使用を決定するために再構成ピクセルにおいて同一の探索を実行し得、したがって、ビットがブロック予測モードで送られる必要はない。他の実施形態では、ビデオデコーダ30が別個の探索を実行する必要がないように、ビデオエンコーダ20が探索を実行し得るとともにブロック予測ベクトルをビットストリームの中でシグナリングし得る。成分範囲の中間点を使用してサンプルが予測される、中間点予測モードも実施されてよい。中間点予測モードは、ワーストケースサンプルにおいてさえ、圧縮ビデオにとって必要なビット数のバウンディングを可能にし得る。
【００５１】
予測器、量子化器、および再構成構成要素125はまた、量子化を実行する。たとえば、量子化は、シフタを使用して実施され得る2のべき乗量子化器により実行され得る。2のべき乗量子化器の代わりに他の量子化技法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125によって実行される量子化は、レートコントローラ120によって決定されたQPに基づき得る。最後に、予測器、量子化器、および再構成器構成要素125はまた、逆量子化残差を予測値に加算すること、および結果がサンプル値の有効範囲の外にならないことを確実にすることを含む、再構成を実行する。
【００５２】
予測器、量子化器、および再構成器構成要素125によって実行される予測、量子化、および再構成のための上記の例示的な手法が例示にすぎないこと、ならびに他の手法が実施され得ることに留意されたい。予測器、量子化器、および再構成器構成要素125が、予測、量子化、および/または再構成を実行するための下位構成要素を含み得ることにも留意されたい。予測、量子化、および/または再構成は、予測器、量子化器、および再構成器構成要素125の代わりに、いくつかの別個のエンコーダ構成要素によって実行され得ることにさらに留意されたい。
【００５３】
予測器、量子化器、および再構成器構成要素125ならびにインデックス付き色履歴135が、バッファリングされたビデオデータを使用できるように、ラインバッファ130は、予測器、量子化器、および再構成器構成要素125からの出力を保持する。インデックス付き色履歴135は、最近使用されたピクセル値を記憶する。これらの最近使用されたピクセル値は、専用シンタックスを介して、ビデオエンコーダ20によって直接参照され得る。
【００５４】
エントロピーエンコーダ140は、予測器、量子化器、および再構成器構成要素125から受信された予測残差および任意の他のデータ(たとえば、予測器、量子化器、および再構成器構成要素125によって識別されたインデックス)を、インデックス付き色履歴135、および平坦度検出器115によって識別された平坦度遷移に基づいて符号化する。いくつかの例では、エントロピーエンコーダ140は、サブストリームエンコーダごとにクロックあたり3サンプルを符号化し得る。サブストリームマルチプレクサ145は、ヘッダレスパケット多重化方式に基づいてビットストリームを多重化し得る。このことにより、ビデオデコーダ30は、3つのエントロピーデコーダを並行して動作させることができ、クロックあたり3ピクセルの復号を容易にする。サブストリームマルチプレクサ145は、ビデオデコーダ30によってパケットが効率的に復号され得るようにパケット順序を最適化し得る。クロックあたり2のべき乗個のピクセル(たとえば、2ピクセル/クロックまたは4ピクセル/クロック)の復号を容易にし得る、エントロピーコーディングの異なる手法が実施され得ることに留意されたい。
【００５５】
DSCビデオデコーダ
図2Bは、本開示で説明する態様による技法を実施し得るビデオデコーダ30の一例を示すブロック図である。ビデオデコーダ30は、本開示の技法のうちの一部または全部を実行するように構成され得る。いくつかの例では、本開示で説明する技法は、ビデオデコーダ30の様々な構成要素の間で共有され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本開示で説明する技法のうちの一部または全部を実行するように構成され得る。
【００５６】
説明の目的で、本開示は、DSCコーディングのコンテキストにおいてビデオデコーダ30を説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
【００５７】
図2Bの例では、ビデオデコーダ30は、複数の機能構成要素を含む。ビデオデコーダ30の機能構成要素は、レートバッファ155、サブストリームデマルチプレクサ160、エントロピーデコーダ165、レートコントローラ170、予測器、量子化器、および再構成器構成要素175、インデックス付き色履歴180、ラインバッファ185、ならびに色空間変換器190を含む。ビデオデコーダ30の図示の構成要素は、図2Aのビデオエンコーダ20に関して上記で説明した対応する構成要素に類似である。したがって、ビデオデコーダ30の構成要素の各々は、上記で説明したようなビデオエンコーダ20の対応する構成要素と同様に動作し得る。
【００５８】
DSCビデオエンコーダのさらなる例
図3は、本明細書で説明する態様による技法をそれを用いて実施するためのビデオエンコーダ20の別の例を示すブロック図である。ビデオエンコーダ20またはその構成要素は、本開示の技法のうちの一部または全部を実行するように構成され得る。いくつかの例では、本明細書で説明する技法は、ビデオエンコーダ20の様々な構成要素の間で共有または分散され得る。いくつかの例では、追加または代替として、プロセッサ(図示せず)が、本明細書で説明する技法のうちの一部または全部を実行するように構成され得る。
【００５９】
図3の例では、ビデオエンコーダ20は、複数の機能構成要素を含む。ビデオエンコーダ20の機能構成要素は、たとえば、平坦度検出器115、レートコントローラ120、エントロピーエンコーダ140、サブストリームマルチプレクサ145、レートバッファ150、ラインバッファ305、ラスタ/ブロック変換器310、モード評価器315、モード選択器320、再構成器325、更新再構成バッファ構成要素330、および更新パターンデータベース構成要素335を含み得る。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。平坦度検出器115、レートコントローラ120、エントロピーエンコーダ140、サブストリームマルチプレクサ145、およびレートバッファ150は、図2Aに関して上記で説明したビデオエンコーダ20の対応する構成要素と同様に機能し得、したがって、これらの構成要素のさらに詳細な説明は繰り返さない。
【００６０】
ラインバッファ305は、たとえば、ビデオデータの2〜4本のラインを記憶するバッファまたは複数のバッファであってよい。ラインバッファ305によって記憶されるビデオデータのラインは、ラスタ/ブロック変換器310に提供され得る。ラインバッファ305によって記憶されるラインの数は、ピクセルのブロック(たとえば、K×2またはK×4ブロック)を作り出すために使用されるピクセルの行数に相当し得る。ラスタ/ブロック変換器310は、ビデオデータのラインを、エンコーダ20がそれに対して動作するように設計されているビデオデータのブロックに変換し得る。
【００６１】
ラスタ/ブロック変換器310は、ブロックを平坦度検出器115および/またはモード評価器315に提供するように構成され得る。平坦度検出器115は、ビデオデータの中の平坦エリアを検出し、図2Aの平坦度検出器115と同様に動作し得る。同様に、レートコントローラ120は、平坦度検出器115からの出力を受信し、図2Aのレートコントローラ120と同様に動作し得る。
【００６２】
モード評価器315は、ラスタ/ブロック変換器310から受信されたブロックのコーディングに関連する1つまたは複数のパラメータを、複数のコーディングモードで評価するように構成され得る。たとえば、モード評価器315は、複数のコーディングモードの各々に対して、現在のブロックを符号化するためのレートひずみコストを決定し得る。コーディングモードの例は、変換コーディングモード(たとえば、DCT、アダマールなど)、ブロック予測コーディングモード、差分パルスコード変調(DPCM:differential pulse-code modulation)コーディングモード、パターンコーディングモード、中間点予測(MPP:mid-point prediction)コーディングモード、およびMPPフォールバック(MPPF:MPP fall back)コーディングモードを含み得る。モード選択器320は、ビデオデータの現在のブロックを符号化するための複数のコーディングモードのうちの1つを選択し得る。一実装形態では、モード選択器320は、モード評価器315によって決定されるようなレートひずみコストが最小であるコーディングモードを選択するように構成され得る。モード選択器320の出力は、再構成器325および/またはエントロピーエンコーダ140に提供され得る。エントロピーエンコーダ140、サブストリームマルチプレクサ145、およびレートバッファ150の各々は、図2Aに関して説明した例示的なエンコーダの対応する構成要素と同様に動作し得る。
【００６３】
図2Aのエンコーダの予測器、量子化器、および再構成器構成要素125と同様に、再構成器325は、逆量子化残差を予測値に加算すること、および結果がサンプル値の許容範囲または有効範囲の外にならないことを確実にすることを含み得る、初めに受信されたビデオデータの再構成を実行し得る。更新再構成バッファ330は、再構成器325からのビデオデータの再構成に関係する情報を記憶するように構成され得る。たとえば、更新再構成バッファ330は、現在のブロックと同じラインおよび前の再構成ラインの中の、再構成ピクセル値を記憶し得る。いくつかの実装形態では、これらの再構成ピクセル値は、いくつかのコーディングモードでの予測のために使用され得る。
【００６４】
更新パターンデータベース335は、ビデオデータの中で繰り返しまたは普通に出現するピクセル値を記憶するように構成され得る。これらの記憶されたピクセル値は、インデックスを参照するコーディングモード(たとえば、パターンコーディングモード)などの、いくつかのコーディングモードによって使用され得る。記憶されたピクセル値を参照するために更新済みパターンデータベース335の中の1つまたは複数のインデックスを使用することは、大きい領域が、異なるピクセル値の小さいセットを含むことがあるグラフィックスコンテンツなどの、いくつかのコンテンツタイプに対してレートひずみを改善し得る。
【００６５】
詳細に説明または例示しないが、対応するビデオデコーダが、図3に示すビデオエンコーダ20に基づいて構築され得ることを当業者は理解されよう。そのようなビデオデコーダは、符号化ビデオビットストリームを復号して、ビデオエンコーダ20によって受信されたビデオデータに対応する視覚的ロスレス画像を再生するように構成され得る。
【００６６】
ビデオエンコーダおよび/またはビデオデコーダのいくつかの実施形態がDSC規格のコンテキストにおいて本明細書で説明されるが、本明細書で開示するシステムおよび方法が、任意の適切なビデオコーダまたはコーディング規格に適用可能であり得ることが当業者には諒解されよう。
【００６７】
図1A〜図1B、図2A〜図2B、および/または図3に示すビデオエンコーダ20、ビデオデコーダ30、および/またはそれらの構成要素が、本明細書で説明するコーディング技法の機能のうちの1つまたは複数を実行するように構成され得ることに留意されたい。
【００６８】
ビデオエンコーダ、ビデオデコーダ、および/またはそれらの構成要素は、バッファを含む複数のプログラマブル計算ユニットによって共有される統合グローバルメモリを含むデバイス上に実装されてよく、バッファは、先入れ先出し(FIFO)バッファを含んでよい。デバイスは、少なくとも1つのプロセッサもしくはプロセッサ回路(たとえば、中央処理装置(CPU))および/またはグラフィックス処理装置(GPU)を含み得る集積回路(IC)をさらに含んでよく、GPUは、1つまたは複数のプログラマブル計算ユニットを含んでよい。デバイスは、SoCの一部であってよく、SoCは、少なくとも1つの縮小命令セットコンピューティング(RISC)命令セットを使用するCPUを含んでよい。SoCは、複数のCPUコアおよびGPUを含んでよい。
【００６９】
ブロックベースビデオコーディング
ディスプレイ技術、たとえば、4Kなどの高解像度ディスプレイを開発することは、ディスプレイリンクを介して配信されなければならない増大する量のデータ転送を必要とし得る。将来の需要に対処するために、4:1以上の圧縮ターゲット比などの視覚的ロスレス要件を満足する増大した圧縮レートが望ましいことがある。
【００７０】
上で簡略に述べたように、ビデオコーディングは、ブロックベースの手法によって実行され得る。たとえば、コーディングされるべき各画像は、各々がP×Qピクセルとしてのサイズを有する、ピクセルの複数のブロックに分割され得る。ブロックベースビデオコーディング規格の一例は、コーディングされるべきブロックごとにコーディングモードが個別に選択され得るDSCである。DSC規格においてブロックごとに利用可能なコーディングモード(コーディングオプションとも呼ばれる)の例は、変換コーディングモード(たとえば、DCT、アダマールなど)、ブロック予測コーディングモード、差分パルスコード変調(DPCM)コーディングモード、パターンコーディングモード、中間点予測(MPP)コーディングモード、および中間点条件付き実行制御フォールバック(MPPF)コーディングモードを含む。たとえば、レートひずみコストが最小のコーディングモードを選択することによって、異なるタイプのコンテンツまたは画像を効果的に圧縮するために、複数のコーディングモードがコーダによって使用され得る。レートひずみコストを計算するための例示的な技法が、以下でより詳細に説明される。ブロックベースコーディングの一実装形態では、テキスト画像はパターンコーディングモードを使用することによってより効果的に圧縮され得、自然画像は変換コーディングモードを使用することによってより効果的に圧縮され得る。
【００７１】
コーダは、レート制御機構に基づいて、複数のコーディングモードの中からコーディングモードのうちの1つを選択し得る。レート制御機構は、モードのレートとひずみの両方を検討することによって、ブロックごとに「最良」モードを選択するように構成され得る。たとえば、「最良」モードは、ブロックに対してレートひずみコストを最小限に抑えるモードとして定義され得る。レート制御機構は、バッファモデルによってサポートされ得る。さらに、いくつかの実装形態では、所与のコーデックに対する設計要件は、バッファが絶対にアンダーフロー(たとえば、バッファの中に0個よりも少ないビットがある)またはオーバーフロー(たとえば、設定されたバッファの最大サイズを超えてバッファの中のビットの数が増大している)の状態にないことを含み得る。たとえば、バッファがアンダーフローまたはオーバーフローの状態にあるとき、ビデオデータの符号化/復号が可能でないことがある。一実装形態では、「最良」ブロックを選択するとき、レートおよびひずみに加えてバッファフルネスも検討されてよい。
【００７２】
変換コーディングモード
いくつかの実施形態では、(ビデオエンコーダ20などの)ビデオエンコーダは、より良好な圧縮を達成するために、1つまたは複数の変換をピクセル値または残差値に適用することによってビデオデータを変換コーディングモードで符号化し得る。たとえば、エンコーダは、1つまたは複数の変換をビデオデータ(たとえば、ピクセル値または残差値)のブロックに適用し得、変換係数ブロック(たとえば、ビデオデータのブロックに対応する変換係数のブロック)を取得し得る。各変換係数は、関連する周波数を有し得る。上記で説明したように、変換係数ブロックを生成した後、エンコーダは、変換係数ブロックにおいて量子化プロセスを実行し得、ここで、変換係数を表すために使用されるデータの量を潜在的に低減するように変換係数が量子化され、さらなる圧縮をもたらす。
【００７３】
同様に、(ビデオデコーダ30などの)ビデオデコーダは、エンコーダによって生成されたビットストリームを受信し得、ここで、ビットストリームは、エンコーダによって符号化されたビデオデータのコード化表現を含む。デコーダがビットストリームを受信すると、デコーダは、ビットストリームを構文解析し、ビットストリームからシンタックス要素を抽出し、ビットストリームから抽出されたシンタックス要素に基づいてビデオデータのピクチャを再構成し得る。シンタックス要素に基づいてビデオデータを再構成するためのプロセスは、概して、シンタックス要素を生成するためにエンコーダによって実行されるプロセスの逆であり得る。たとえば、ビデオデータのブロックが変換モードを使用してビットストリームに符号化されたとき、デコーダは、ビットストリームの中の変換係数ブロックを逆量子化し得、ビットストリームの中でコーディングされたビデオデータのブロックを再構成するために、変換係数ブロックにおいて逆変換を実行し得る。
【００７４】
いくつかの実装形態では、エンコーダは、異なるサイズ(たとえば、変換の2つの異なるセット)のいくつかの変換を実行し、画像またはビデオデータの特定のブロックまたは部分にとって最良の性能(たとえば、変換の異なるセットの間で最小のレートひずみ性能)を与える変換を選択するように構成され得る。たとえば、P×Q=2×8ブロックに対して、エンコーダは、(i)単一の2×8変換(水平方向に沿った8ポイント変換、および垂直方向に沿った2ポイント変換)、(ii)2つの2×4変換(水平方向に沿った4ポイント変換、および垂直方向に沿った2ポイント変換)を実行し得、ここで、各オプションは、同数の入力(たとえば、ピクセルデータのブロック)を利用する。
【００７５】
変換の様々なセットを実行した後、エンコーダは、各オプションに関連するひずみおよびビットレートを分析し得、所望の性能に基づいてオプションのうちの1つを選択し得る。エンコーダは、フラグまたはシンタックス要素をコード化ビットストリームの中でシグナリングすることによって、選択されたオプションをデコーダに示し得る。
【００７６】
バッファモデル
画像の各ブロックを符号化するのに費やされるビット数は、ブロックの性質に基づいて大幅に変わることがある。したがって、バッファ(たとえば、レートバッファ150)は、出力ビットストリームにおけるレート変動を平滑化するためのレート制御機構の一部として使用され得る。固定ビットレート(CBR)バッファモデルでは、送信リンクは、固定ビットレートでレートバッファ150からビットを取る。このバッファモデルでは、バッファから取り出されるビットよりも多数のビットをエンコーダ20が頻繁に追加すると、バッファはオーバーフローする。一方、エンコーダは、アンダーフローを防止するために十分な数のビットを追加しなければならない。デコーダ側では、ビットは固定ビットレートでバッファに追加され、デコーダは各ブロックを復号するために可変数のビットを取り出す。適正な復号を確実にするために、バッファは、圧縮ビットストリームの復号中の任意の時点において「アンダーフロー」も「オーバーフロー」もすべきでない。
【００７７】
レートひずみ(RD)コスト
上記で説明したように、所与のブロックのためのコーディングモードは、ブロックを符号化するために使用され得るコーディングモードの各々に対するレートひずみコストに基づいて選択され得る。一実施形態では、Dは、ブロックのための特定のコーディングモードに関連するひずみを表してよく、Rは、特定のコーディングモードを用いてブロックをコーディングするための対応するビットレートであってよい。以下の式に従って、レートとひずみの両方を検討することによってモードごとにコストが計算され得る。
コスト=D+λR
【００７８】
ここで、λは、ひずみおよびレートのバランスをとるラグランジュ乗数(ラグランジュパラメータとも呼ばれる)を指す。いくつかの実施形態では、ブロックのための複数のコーディングモードに対してコストが計算されてよく、計算されたレートひずみコストの間で最小コストを有するコーディングモードが、ブロックをコーディングするために選択され得る。
【００７９】
変換コーディングモード用ブロックサイズの変更
上記で説明したような複数のコーディングモードを含むコーデックは、視覚的ロスレス性能を伴ってコンテンツを圧縮することが可能であり得る。しかしながら、比較的大きい圧縮比、たとえば、4:1以上の圧縮比の場合、高周波コンテンツまたは高度なテクスチャードコンテンツを含むビデオデータのパターンにとって視覚的ロスレス性能は達成するのが困難であり得る。ビデオデータの周波数またはテクスチャの1つの尺度は、ビデオデータの「複雑度」測定である。いくつかの実施形態では、複雑度は、ビデオデータの領域を所与の品質レベルで符号化するのに必要なビット数の測定値である。したがって、より複雑な(たとえば、より高い周波数コンテンツまたはテクスチャードコンテンツの)ビデオデータは、さほど複雑でないビデオデータよりもコーディングするのに多くのビットを必要とし得る。このコンテキストでは、変換コーディングモードに対するサポートを増大させて変換係数がより低密度であることを可能にすることが望ましく、そのことは、4:1以上の圧縮比にとってより良好な性能をもたらし得る。
【００８０】
本開示の1つまたは複数の態様によれば、以下で大型ブロックサイズ変換(LBT)コーディングモード(または、単にLBTモード)と呼ばれる追加のコーディングモードが導入され得る。LBTモードは、画像の中の高周波コンテンツおよび高度なテクスチャードコンテンツを圧縮するために、固定レートコーダによって利用され得る。たとえば、上記で説明したコーデックにおける、サイズがP×Qの変換モードと比較して、LBTモードは、たとえば、ブロックサイズP×M(ただし、M>Q)のもっと大きい領域において動作することを伴い得る。
【００８１】
概して、変換をビデオデータに適用することは、入力値(たとえば、ピクセル値または残差値)の数に比例する数の変換係数を生成する。したがって、LBTモードを適用することは、単一ブロックの従来のもっと小さい変換よりも多数の出力変換係数をもたらし得る。これらの追加の変換係数は、単一ブロック変換よりも高い関連する周波数を有する変換係数を含み得る。より高い複雑度(たとえば、より高い空間周波数)を有するブロックを符号化するとき、これらの追加の高周波変換係数は、複雑なビデオデータをより効率的に表すことができる場合があり、したがって、他のコーディングモードと比較してLBTモードに関連する全体的なレートひずみコストを低くし得る。
【００８２】
LBTモードの実施形態が、ここで、図4Aおよび図4Bに関して説明される。図4Aは、本開示で説明する態様による技法を実施し得るLBTモードの一例を示すブロック図である。図4Aは、各々がP×Qとしてのサイズを有する複数のブロック405〜425を示す。LBTモードでは、変換は、サイズP×Mの大型ブロックのサンプルに適用され得、係数は、次いで、量子化およびエントロピーコーディングされ得る。適用され得る変換の例は、ウェーブレット、DCT、アダマールなどを含む。一例では、大型ブロックサイズが複数のブロック405〜425から形成されてよい。
【００８３】
LBTモードの別の例示的な手法では、O×Q(ただし、O>P)などの、またはO×Mなどの、大型ブロックサイズが利用されてもよい。一実装形態では、MおよびOは、それぞれ、QおよびPの整数倍であってよい。
【００８４】
LBTモードは、(ブロックサイズP×Qにおいて動作する)既存の変換モードおよび/または他のコーディングモードに加えて、コーディングモードオプションとして利用され得る。LBTモードおよび(サイズP×Qの)既存の変換モードにおいて使用される変換は、コンテキストまたは実装形態(たとえば、それぞれ、ウェーブレットおよびDCT)に応じて変わることがある。一例では、(サイズP×Qの)既存の変換モードは、LBTモードによって置き換えられてよい。
【００８５】
また別の例示的な手法では、LBTモード用のブロックサイズは固定されてよい。LBTのブロックサイズが固定されているとき、対応するRDコストが、大きいブロックの中に含まれるサイズP×Qのすべてのブロックの最適なコーディングモードに対応するRDコストの累積和よりも厳密に小さい(または、それ以下である)場合、LBTモードが選択または利用され得る。
【００８６】
また別の例示的な手法では、LBTモード用のブロックサイズは、画像の中のコンテンツに基づいてコーダによって適応的に選択されてよい。言い換えれば、いくつかの連続したブロック(サイズP×Qの各ブロック)にLBTモードを適用するという決定は、エンコーダによって「オンザフライで」(たとえば、画像内のコンテンツの処理中に)決定されてよい。図4Aを参照すると、変換コーディングモードが現在のブロック405にとって最適なコーディングオプションであると見出された(たとえば、そうであると決定された)とき、またはブロック405が、変換コーディングモードを使用して効果的に圧縮され得ることが見出されたとき(決定は、上記で説明したようなすべてのモードのRDコストを比較することに基づいて行われてよい)、あるいはいくつかの他の基準に基づいてこの決定(たとえば、変換モードが最適なコーディングオプションであるという決定)に至ったとき、コーディングブロック405を個別にではなく、次のブロック410の中のサンプルを含めることによって、もっと大きい領域に対して変換が評価され得る。
【００８７】
すなわち、より大きい変換が、LBTモードにおいてブロック405および410の中のサンプルに対して一緒に適用され得る。一緒に組み合わせて処理されるブロック405および410の中のサンプルがLBTモードによって効果的に圧縮され得ることが見出されたとき、変換は、次のブロック415の中のサンプルを追加的に検討することによって再計算され得、たとえば、LBTコーディングモードが、ブロック405、410、および415の中のサンプルに対して一緒に適用され得る。コーディングモードを選択するためのこのプロセスは、変換モードがブロックにとって最適であるかどうかを評価することを伴い、そうである場合、大型ブロックに対して変換を再計算する。このプロセスは、たとえば、反復的な方法で実行されてよく、たとえば、変換モードが第1のブロック405にとって最適であるかどうかを評価し、大型ブロック(たとえば、第1のブロック405および第2のブロック410を一緒に)の中のサンプルに対して変換を再計算し、第1のブロック405および第2のブロック410の中のサンプルがLBTモードによって効果的に圧縮され得ることが見出された場合、さらに大型のブロック(たとえば、第1のブロック405および第2のブロック410を第3のブロック415と組み合わせて)の中のサンプルに対して変換を再計算し、以下同様である。変換モードが最適であるかどうかを評価し、大型ブロックに対して変換を再計算するためのこのプロセスは、最大許容変換サイズに達するまで継続してよく、またはもっと大きい領域もしくは追加のブロックへとなおも継続することが有益でないと見出されたときに、プロセスが終了されてもよい。その後、識別された大型ブロック/領域が、LBTモードを使用してコーディングされ得る。別の手法では、LBTモードによってコーディングされ得る識別された大きいブロックから、現在のブロック405(サイズP×Q)が除外されてよい。現在のブロック405をLBTモードによってコーディングする代わりに、現在のブロック405は上記で説明した他のモードのうちの1つによってコーディングされてよい。追加として、上記で説明したように、所与のコーディングモードは、そのコーディングモードが最小のRDコストを有するときに「最適」であるものと決定され得る。
【００８８】
変換を次の追加のブロックに拡張するための、または現在の大型ブロックに対してLBTモードを選択するための基準は、RDコストに基づいて決定され得る。変換を次のブロックに拡張すべきかどうかを決定するために、すべてのモードに関連するRDコストが、LBTモードに関連するRDコストと比較され得る。たとえば、次のブロックを追加的に含むさらに大型のブロックにLBTモードを適用することに関連して得られたRDコストが、現在の大型ブロックの中に含まれるサイズP×Qのすべてのブロックの最適なコーディングモードに対応するRDコストの累積和よりも小さい(または、それ以下である)場合、変換モードは次のブロックに拡張(すなわち、次のブロックを追加的に含むように拡張)されてよい。別の例では、LBTモードのRDコストが、大きいブロックの中に含まれるサイズP×Qのすべてのブロックの最適なコーディングモードに対応するRDコストの累積和のしきい値内または範囲内にある(または、それにほぼ等しい)場合、変換は次のブロックに拡張されてよい。
【００８９】
大型サイズのブロックをLBTモードで符号化するために使用され得る決定プロセスの一例が、図5に関して説明される。図5は、本開示で説明する態様によるLBTモードを組み込み得るコーディングモードの例示的な方法を示すフローチャートである。方法500は、ビデオエンコーダ(たとえば、ビデオエンコーダ20)、ビデオデコーダ(たとえば、ビデオデコーダ30)、またはそれらの構成要素によって実行され得る。便宜上、方法500は、ビデオエンコーダ20および/もしくはビデオデコーダ30またはそれらの構成要素であってよい、ビデオコーダ(単に、コーダとも呼ばれる)によって実行されるものとして説明される。
【００９０】
方法500は、ブロック501において開始する。ブロック505において、コーダは、現在のブロックに対して複数のコーディングモードのためのRDコストを決定する。複数のコーディングモードは、変換コーディングモードおよび少なくとも1つの他のコーディングモードを含む。ブロック510において、コーダは、変換モードのためのRDコストが他の(たとえば、残りの)コーディングモードのためのRDコストよりも小さいかどうかを決定する。この決定は、比較以下であること、または比較よりも厳密に小さいことに基づいて行われてよい。他の実装形態では、コーダは、RDコストが残りのコーディングモードよりも小さくないと決定し得るが、変換モードのためのRDコストが最小RDコストのコーディングモードからしきい値差内にあるとき、やはりブロック520に進み得る。
【００９１】
変換モードが、RDコストが計算されたモードの間で最小のRDコストを有しないとき、方法500は、ブロック515において継続する。ブロック515において、コーダは、ブロック505において決定されたようなRDコストが最小のコーディングモードを使用して、現在のブロックをコーディングする。
【００９２】
変換モードが最小のRDコストを有するとき、方法は、ブロック520において継続する。ブロック520において、コーダは、現在のブロックおよび次のブロックを含むLBTモードのためのRDコストを決定する。ブロック525からブロック520に戻ると、コーダは、前に決定されたブロックおよび次のブロックを含むLBTモードのためのRDコストを決定する(たとえば、コーダは、LBTがそれに対して前に決定された数のブロックに新たな次のブロックを追加する)。コーダはまた、次のブロックに対して複数のモードのためのRDコストを決定する。対応するコーディングモードに対して現在検討中のブロックの各々に対する最小RDコストを合計することによって、累積RDコストが決定される。
【００９３】
ブロック525において、コーダは、LBTモードのためのRDコストが他のコーディングモードの組合せに対する累積RDコストよりも小さいかどうかを決定する。LBTモードのためのRDコストが他のコーディングモードの各々に対する累積RDコストよりも小さいとき(または、他の実施形態では、比較は、そのしきい値差以下であるか、それよりも厳密に小さいか、もしくはその中にあってよい)、方法500は、新たな次のブロックを含むLBTモードが他のコーディングモードのための更新された累積RDコストよりも小さいRDコストを有するかどうかを決定するために、ブロック520に戻る。LBTモードのためのコストが他のコーディングモードの各々に対する累積RDコストよりも小さくないとき、方法500は、ブロック530において継続する。
【００９４】
ブロック530において、コーダは、直近に追加された次のブロックを除くブロックを、変換モードまたはLBTモードでコーディングする。たとえば、現在のブロックだけが他のコーディングモードよりも小さいRDコストを有するとき(たとえば、現在のブロックおよび次のブロック(合計で2ブロック)が他のコーディングモードのうちの少なくとも1つよりも大きいRDコストを有するとき)、現在のブロックは変換モードでコーディングされる。(直近に追加された次のブロックを除く)複数のブロックが、他のコーディングモードのための累積RDコストよりも小さい、LBTモードでのRDコストを有するとき、これらのブロックは、LBTモードでコーディングされる。方法500は、ブロック535において終了する。
【００９５】
方法500において、図5に示すブロックのうちの1つもしくは複数が除去されてよく(たとえば、実行されなくてよく)、かつ/または方法が実行される順序が交換されてよい。いくつかの実施形態では、追加のブロックが方法500に追加されてよい。本開示の実施形態は、図5に示す例に限定されず、または図5に示す例によって限定されず、他の変形形態が本開示に従って実施され得る。
【００９６】
図4Bに戻ると、LBTコーディングの別の例示的な手法が示される。図4Bは、本開示で説明する態様による技法を実施し得るLBTモードの一例を示すブロック図である。図4Bは、各々がP×Qとしてのサイズを有する複数のブロック435〜455を示す。図4Bの手法において、以下のプロセスを使用して、LBTモードが最適なコーディングモードとして選択され得る。P×MminおよびP×Mmaxが、それぞれ、最小および最大の許容LBT変換サイズを表すものとする。最初にサイズP×Qのブロックごとに最適なコーディングモードを決定するために、総ブロックサイズがP×Mmin(たとえば、ブロック435〜450を含む)に達するまで、LBTモードを用いないDSC方式が使用される。図4Bを参照すると、DSC方式のためのP×Q個の基本ブロック435〜455が示され、P×Mminは、LBTモードに対する最小変換サイズである。P×Mmin個のブロックをコーディングするために使用されるビットの総数がRDSCとして計算され、対応するひずみがDDSCとして計算されるものと想定する。DSC方式の中のモードを使用してコーディング性能を評価した後、LBTモードが必要とするビット数がRDSC以下であるという制約を条件として、LBTモードのコーディング性能が前のP×Mmin個のブロック435〜450に対して評価される。LBTモードを使用して表されるP×Mmin個のブロック435〜450のひずみが計算され、DLBTと呼ばれることがある。両方のモードに対するビット数が同じかまたはほぼ等しいので、たとえば、DSC(たとえば、LBTモード以外のコーディングモード)がより良好であるのか、それともLBTモードが大型ブロックサイズに拡張され得るのかという決定を行うために、2つのモードのひずみが比較され得る。
【００９７】
DDSCがDLBTよりもはるかに小さい(たとえば、しきい値を超えてDLBTよりも小さい)場合、LBTモードは、サイズP×Mminのこの領域(たとえば、ブロック435〜450)にとってさほど助けとなり得ず、したがって、この領域をコーディングするために既存のDSCコーディングモードが使用されてよい。その後、上記のステップが繰り返されてよく、ここで、P×Mmin個のブロック435〜450の後の次のブロック455のコーディング性能が、既存のDSC方式の中のモードを使用かつLBTモードを使用して評価され、ひずみを比較して決定を行う。このことは、上記で説明した図5のブロック520および525の単純な変更によって実行され得る。
【００９８】
DDSCがDLBTにほぼ等しいか、またはDLBTがDDSCよりも厳密に小さいとき、LBTモードをさらに拡張すること、たとえば、次のブロック455を含むようにLBTモードを拡張することが、有益であると決定され得る。この決定を行うために、サイズP×Qの次のブロックの最適なコーディングモードが、最初に既存のDSCの中のコーディングモードのセットから決定される。サイズP×(Mmin+Q)のブロック全体の総レート、および対応するひずみが更新され、それぞれ、RDSCおよびDDSCとして表される。次いで、LBTが必要とするビット数がRDSC以下であるという制約を条件として、LBTモードのコーディング性能がP×(Mmin+Q)の領域全体に対して決定される。P×(Mmin+Q)としての大型ブロックサイズに対するLBTモードひずみDLBTがDDSCにほぼ等しいか、またはDLBTがDDSCよりも厳密に小さい場合、サイズP×Qの次のブロックが、サイズP×(Mmin+Q)の現在の大型ブロックとともに含められ、P×(Mmin+2Q)としてのブロックサイズのひずみが、LBTモードのコーディングレートがRDSC以下であるという想定の下で比較される。追加のブロックを含めLBTおよびDSCの性能を比較するプロセスが、停止基準が満たされるまで継続される。停止基準は、大型ブロックの総ブロックサイズがP×Mmaxとしての最大許容LBTブロックサイズに達したとき、または同じラインにおけるスライスの中の最後のブロックにぶつかったとき、またはLBTモードを継続することがさほど有用でないことが見出されたときであってよい。たとえば、LBTモードのひずみがDDSCにほぼ等しいとき、またはLBTモードひずみがDDSCに向かって収束しつつあるとき、後者のケースが決定され得る。
【００９９】
停止基準が満たされると、またはLBTモードが他のDSCコーディングモードよりも小さいレートひずみコストを有することが決定されると、(LBTが有用であると見出された)前のブロックの再構成ピクセル値は、LBTモード再構成値と置き換えられる。一実装形態では、ビットストリームファイルを、LBTモードを使用して生成されたビットと置き換えることが必要であり得る。たとえば、QPを更新または再計算することも必要であり得る。必要な変更を実行した後、上記のステップが繰り返されてよく、ここで、P×Mminとしての次の大型ブロックのコーディング性能が、最初に既存のDSC方式の中のモードを使用し、次いで、LBTモードを使用して評価され、その後、ひずみを比較してLBTモードを続けるか否かを決定する。
【０１００】
一実装形態では、P×Mminのブロック内のP×Qブロックのうちのいずれか1つに対して以下の条件、すなわち、(i)パターンモードが最適なコーディングモードであると決定されること、(ii)平坦ブロックが検出されること、(iii)複雑領域から平坦領域への遷移が検出されること、および(iv)平坦領域から複雑領域への遷移が検出されることのうちの1つまたは複数が満たされるとき、LBTモードコーディング性能は、サイズP×Mminのブロックに対して評価されない(その時、そのようなブロックは、LBTモードを使用して評価されない)。
【０１０１】
LBTモードでコーディングするための例示的なフローチャート
図6を参照しながら、ビデオデータをLBTモードでコーディングするための例示的な手順が説明される。図6は、本開示の一実施形態による、ビデオデータをコーディングするための方法600を示すフローチャートである。図6に示すステップは、ビデオエンコーダ(たとえば、図2Aまたは図3におけるビデオエンコーダ20)またはその構成要素によって実行され得る。便宜上、方法600は、ビデオエンコーダ20または別の構成要素であってよい、ビデオコーダ(単に、コーダとも呼ばれる)によって実行されるものとして説明される。
【０１０２】
方法600は、ブロック601において始まる。ブロック605において、コーダは、複数のコーディングモードのうちの1つまたは複数を用いてコーディングされるべき、ビデオデータの現在のブロックおよび次のブロックを選択する。ブロック610において、コーダは、LBTモードを用いて現在のブロックおよび次のブロックをコーディングするための第1のRDコストを計算する。ブロック615において、コーダは、LBTモードとは異なる別のコーディングモードを用いて現在のブロックおよび次のブロックの各々をコーディングするための第2のRDコストを計算する。ブロック620において、コーダは、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいかどうかを決定する。ブロック625において、コーダは、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、LBTモードを用いて現在のブロックおよび次のブロックをコーディングする。
【０１０３】
図示しないが、一代替実装形態では、コーダは、現在のブロックおよび次のブロックに対して第1のRDコストが第2のRDコストの合計よりも小さいことに応答して、ブロック620からブロック610へ戻ってよい。この実装形態では、コーダは、次いで、LBTモードを用いて追加のブロックと一緒に現在のブロックおよび次のブロックをコーディングするための、更新された第1のRDコストを計算し得る。現在のブロック、次のブロック、および追加のブロックに対して、更新された第1のRDコストが第2のRDコストの合計よりも小さくなくなるまで、ブロック610〜620がこのようにして繰り返されてよい。方法600は、ブロック630において終了する。
【０１０４】
方法600において、図6に示すブロックのうちの1つもしくは複数が除去されてよく(たとえば、実行されなくてよく)、かつ/または方法が実行される順序が交換されてよい。いくつかの実施形態では、追加のブロックが方法600に追加されてよい。本開示の実施形態は、図6に示す例に限定されず、または図6に示す例によって限定されず、他の変形形態が本開示の趣旨から逸脱することなく実施され得る。
【０１０５】
他の検討事項
本明細書で開示する情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１０６】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、およびステップは、概して、それらの機能の観点から上記で説明された。そのような機能をハードウェアとして実装するのか、それともソフトウェアとして実装するのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は説明した機能を特定の適用例ごとに様々な方法で実施し得るが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきでない。
【０１０７】
本明細書で説明した技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の使用を有する集積回路デバイスなどの、様々なデバイスのいずれかにおいて実装され得る。デバイスまたは構成要素として説明した任意の特徴は、集積論理デバイスの中で一緒に実装されてよく、または個別であるが相互運用可能な論理デバイスとして別々に実装されてもよい。ソフトウェアで実装する場合、技法は、実行されたとき、上記で説明した方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ可読データ記憶媒体は、パッケージング材料を含み得るコンピュータプログラム製品の一部を形成し得る。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気データ記憶媒体または光データ記憶媒体などの、メモリまたはデータ記憶媒体を備え得る。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形態でプログラムコードを搬送または通信し、コンピュータによってアクセスされてよく、読み取られてよく、かつ/または実行されてよいコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
【０１０８】
コンピュータ可読媒体(たとえば、メモリまたは他のデータ記憶デバイス)と通信する(たとえば、それと協働する)プロセッサは、プログラムコードの命令を実行し得、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路もしくは個別論理回路などの、1つまたは複数のプロセッサを含み得る。そのようなプロセッサは、本開示で説明した技法のいずれかを実行するように構成され得る。汎用プロセッサはマイクロプロセッサであってよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。したがって、本明細書で使用する「プロセッサ」という用語は、本明細書で説明した技法の実施にとって適した上記の構造、上記の構造の任意の組合せ、または任意の他の構造もしくは装置のうちのいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアもしくはハードウェア内で提供され得るか、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれ得る。また、技法は、1つまたは複数の回路または論理要素で完全に実装されてもよい。
【０１０９】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。様々な構成要素またはユニットは、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニットの中で組み合わせられてよく、あるいは好適なソフトウェアおよび/またはファームウェアとともに、上記で説明したような1つまたは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１１０】
上記のことは様々な異なる実施形態に関して説明されたが、1つの実施形態からの特徴または要素が、本開示の教示から逸脱することなく他の実施形態と組み合わせられてよい。ただし、それぞれの実施形態の間での特徴の組合せは、必ずしもそれらに限定されるとは限らない。本開示の様々な実施形態が説明された。これらおよび他の実施形態は、以下の特許請求の範囲に入る。
【符号の説明】
【０１１１】
10  ビデオコーディングシステム
10'  ビデオコーディングシステム
11  デバイス
12  ソースデバイス
13  プロセッサ/コントローラデバイス
14  宛先デバイス
16  リンク
18  ビデオソース
20  ビデオエンコーダ
22  出力インターフェース
28  入力インターフェース
30  ビデオデコーダ
32  ディスプレイデバイス
105  色空間変換器
110  バッファ
115  平坦度検出器
120  レートコントローラ
125  予測器、量子化器、および再構成器構成要素
130  ラインバッファ
135  インデックス付き色履歴
140  エントロピーエンコーダ
145  サブストリームマルチプレクサ
150  レートバッファ
155  レートバッファ
160  サブストリームデマルチプレクサ
165  エントロピーデコーダ
170  レートコントローラ
175  予測器、量子化器、および再構成器構成要素
180  インデックス付き色履歴
185  ラインバッファ
190  色空間変換器
305  ラインバッファ
310  ラスタ/ブロック変換器
315  モード評価器
320  モード選択器
325  再構成器
330  更新再構成バッファ構成要素
335  更新パターンデータベース構成要素
【図１Ａ】
2018525901.tif 000003
【図１Ｂ】
2018525901.tif 000004
【図２Ａ】
2018525901.tif 000005
【図２Ｂ】
2018525901.tif 000006
【図３】
2018525901.tif 000007
【図４Ａ】
2018525901.tif 000008
【図４Ｂ】
2018525901.tif 000009
【図５】
2018525901.tif 000010
【図６】
2018525901.tif 000011
【国際調査報告】
2018525901.tif 000012
2018525901.tif 000013
2018525901.tif 000014
2018525901.tif 000015