特許拒絶査定不服審判
2024-001855
パレット・エスケープ・シンボルのためのエントロピーコーディング
- 審判番号
- 2024-001855
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2022-509093
- 請求日
- 2024年02月02日
- 審決日
- 2026年01月20日
- 公報発行日
- 2026年07月31日
- 結論
- 請求不成立
- 当事者
- 【請求人】バイトダンス インコーポレイテッド
- 【請求人代理人】伊東 忠重
- 【請求人代理人】宮崎 修
- 審判長/審判官
- 審判長 伊藤 隆夫
- 審判官 畑中 高行
- 審判官 圓道 浩史
- 分類
- P18 .113-WZ (H04N) / P18 .121-WZ (H04N)
- 根拠条文(結論部分から自動抽出・参考)
- 行政事件訴訟法46条特許法29条2項
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項
- データ出所
- 審決公報(XML)
事件の表示
特願2022-509093「パレット・エスケープ・シンボルのためのエントロピーコーディング」拒絶査定不服審判事件〔令和 3年 2月18日国際公開、WO2021/030788、令和 4年10月18日国内公表、特表2022-544413〕について、次のとおり審決する。
結論
結 論
本件審判の請求は、成り立たない。
理由
理 由
理由
第1 手続の経緯
本願は、2020年(令和2年) 8月15日(パリ条約による優先権主張外国庁受理2019年 8月15日、(CN)中華人民共和国、2019年 9月19日、(CN)中華人民共和国、2019年 9月24日、(CN)中華人民共和国、2019年 9月27日、(CN)中華人民共和国、2019年10月 1日、(CN)中華人民共和国、2019年10月29日、(CN)中華人民共和国、2020年 1月 9日、(CN)中華人民共和国)を国際出願日とする出願であって、その手続の経緯は以下のとおりである。
令和4年 3月 2日 :手続補正書の提出
同年 6月13日 :手続補正書の提出
令和5年 3月10日付け:拒絶理由通知書
同年 6月20日 :意見書、手続補正書の提出
同年 6月22日 :手続補正書の提出
同年 9月22日付け:拒絶査定
令和6年 2月 2日 :審判請求書、手続補正書の提出
同年 4月19日付け:前置報告
令和7年 4月30日付け:拒絶理由通知書(当審)
同年 8月 6日 :意見書、手続補正書の提出
なお、本願は、以下の7件の国際出願に基づく優先権が主張されている。
PCT/CN2019/100850号
(出願日:2019年 8月15日。以下、「優先基礎出願1」という。)
PCT/CN2019/106700号
(出願日:2019年 9月19日。以下、「優先基礎出願2」という。)
PCT/CN2019/107494号
(出願日:2019年 9月24日。以下、「優先基礎出願3」という。)
PCT/CN2019/108736号
(出願日:2019年 9月27日。以下、「優先基礎出願4」という。)
PCT/CN2019/109793号
(出願日:2019年10月 1日。以下、「優先基礎出願5」という。)
PCT/CN2019/113931号
(出願日:2019年10月29日。以下、「優先基礎出願6」という。)
及びPCT/CN2020/071221号
(出願日:2020年 1月 9日。以下、「優先基礎出願7」という。)
しかしながら、下記第3の当審の拒絶理由で引用された引用文献1~4は、すべて優先基礎出願1の出願日前に公開された文献である。そのため、上記手続補正書の請求項1に関して、優先基礎出願1の出願日が優先日として有効であったとしても、上記引用文献1~4は、本願優先日前に公開されていることから、引用文献として使用可能な文献であり、本願における優先権主張は、上記引用文献1~4に記載された発明に基づく新規性、進歩性の判断に影響しない。
第2 本願発明について
本願の請求項1~9に係る発明は、令和7年8月6日にされた手続補正により補正された特許請求の範囲の請求項1~9に記載された事項により特定されるとおりのものであるところ、その請求項1に記載された発明(以下「本願発明」という。)は次のとおりである。
なお、記号A~D21132は、分説するために当審において付したものであり、以下、各記号が付された発明特定事項を「構成A」~「構成D21132」という。
〔本願発明〕
A ビデオ・データを処理する方法であって:
B ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの 間の変換のために、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、
B1 前記予測モードでは、再構成されたサンプルはパレット予測子、エスケープされたサンプル、または前記ビットストリームに含まれるパレット情報のうちの少なくとも1つによって表現される、
B 段階と;
C 少なくとも前記予測モードに基づいて前記変換を実行する段階と
A を含み、
D 前記再構成されたサンプルのうちの少なくとも1つが前記エスケープされたサンプルによって表現される場合、
D1 前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、
D11 前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、
D111 Kは、3と等しくない負でない整数であり、
D2 前記エスケープされたサンプルは、クリップ関数と、前記エスケープされたサンプルの前記量子化された値とに基づいて再構成されて、再構成されたエスケープ・サンプルを生成し、
D21 前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、
D211 tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、
D2111 qPは量子化パラメータを指定し、
D2112 mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され、
D2113 前記qPは、Max(QpPrimeTsMin,Qp'Y)に基づいて決定され、
D21131 QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表し、
D21132 Qp'Yは、ルーマ量子化パラメータを表す、
A 方法。
第3 令和7年4月30日付け当審の拒絶の理由
本願発明は、令和6年2月2日に提出された手続補正書における特許請求の範囲の請求項5に係る発明のうち、請求項5が引用する請求項3(請求項5は請求項4を引用し、請求項4は請求項3を引用するから、請求項5は請求項3を引用する。)において請求項1を引用するもの(以下、「請求項5発明」という。)を限定したものであり、請求項5発明に対する令和7年4月30日付け当審の拒絶の理由(以下、「当審拒絶理由」という。)は次の理由を含むものである。
本願の請求項5に記載されている事項は、優先基礎出願2には記載されているが、優先基礎出願1には記載されていないため、請求項5の新規性、進歩性について判断する際の基準日は、優先基礎出願2の出願日(2019年9月19日)となる。
そして、請求項5発明は、優先基礎出願2の出願日前に日本国内又は外国において、頒布された下記1~4の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて、その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。
<引用文献等一覧>
1.特表2018-532319号公報
2.Jizheng Xu, et al., "Overview of the Emerging HEVC Screen Content Coding Extension", IEEE Transactions on Circuits and Systems for Video Technology, 2015.09.14, IEEE, Vol.26, No.1, Pages 50-62
3.大久保 榮 監修,「H.265/HEVC教科書」,初版,2013年10月21日,株式会社インプレスジャパン,第162,163,172~179,185~188ページ
4.Benjamin Bross, et al., "Versatile Video Coding (Draft 6)", Document: JVET-O2001-vA, [online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O2001 (version 10), 2019.07.22, Pages 34-37,65-67,85,139-141,186-188,271, インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7824> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v10.zip>.
なお、上記当審拒絶理由において説示されたように、引用文献等一覧において提示された「2.Jizheng Xu, et al., "Overview of the Emerging HEVC Screen Content Coding Extension", IEEE Transactions on Circuits and Systems for Video Technology, 2015.09.14, IEEE, Vol.26, No.1, Pages 50-62」(以下、「引用文献2」という。)は、「予測子パレット」の「エントリ」のことを「パレット予測子(palette predictor)」と呼ぶことについての当業者の技術常識を開示する文献であり、また、「3.大久保 榮 監修,「H.265/HEVC教科書」,初版,2013年10月21日,株式会社インプレスジャパン,第162,163,172~179,185~188ページ」(以下、「引用文献3」という。)は、k次の指数ゴロム符号についての当業者の技術常識及び「変換量子化バイパスモード」及び「変換スキップ部分」という用語の技術的な意味を解釈するための文献である。
そのため、請求項5発明に対する引用文献は、実質的に、「1.特表2018-532319号公報」(以下、「引用文献1」という。)及び「4.Benjamin Bross, et al., "Versatile Video Coding (Draft 6)", Document: JVET-O2001-vA, [online], Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O2001 (version 10), 2019.07.22, Pages 34-37,65-67,85,139-141,186-188, 271, インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7824> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v10.zip>.」(以下、「引用文献4」という。)の2つの文献であるから、以下では、主に引用文献1及び引用文献4に基づいて説示する。ただし、引用文献3の「変換量子化バイパスモード」及び「変換スキップモード」については、判断において必要であるため、当該説示に使用する。
第4 引用文献、引用発明等
1 引用文献1について
(1) 引用文献1に記載された事項
当審拒絶理由で引用された引用文献1には、以下の事項が記載されている。なお、引用文献1においては、全角文字を用いた段落番号と、半角文字を用いた段落番号とが併用されている(例えば、全角文字の段落番号【0186】には、半角文字の段落番号[0194]が併記されている)が、引用文献1の中の段落番号について言及する際には、すべて、半角文字の段落番号を使用する。また、下線は、強調のため当審にて付したものである。以下同様。
ア 発明の詳細な説明の記載事項
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実行する。ブロックベースビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差係数が生じ得、その残差係数は、次いで量子化され得る。
【0005】
[0005]画像またはビデオなど、コンテンツは、パレットモードを使用して符号化および復号され得る。概して、パレットモードは、ピクチャ中のピクセルをコーディングするための別の技法である。パレットモードは、ピクセルのコンテンツを表すための色値のパレットの使用を伴う。コンテンツは、コンテンツピクセルが、パレット中の色値に対応する表された値であるように、符号化され得る。パレット中の色値にピクセルをマッピングし、それにより、コンテンツを再構成するための色値を取得するために、インデックスマップが復号され得る。
【0021】
[0029]本開示は、ビデオコーディングおよび圧縮のための技法について説明する。特に、本開示は、ビデオデータのパレットベースコーディングのための技法について説明する。いくつかの例では、本技法の態様は、個々のピクチャなど、他のコンテンツのコーディングのためにも使用され得る。旧来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかである自然画像であると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。
【0023】
[0031]いくつかの例では、パレットベースコーディング技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得る。たとえば、ITU-T H.265、高効率ビデオコーディング(HEVC)は、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT-VC:Joint Collaboration Team on Video Coding)によって開発された新しいビデオコーディング規格である。HEVC規格は、ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services--Coding of moving video, High Efficiency Video Coding、国際電気通信連合。2015年4月(以下、「HEVC」)として発行されている。
【0024】
[0032]HEVCフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得る。したがって、CUコーディングのコンテキストにおいて説明される以下の開示されるプロセスのすべてが、追加または代替として、PUコーディングに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
【0025】
[0033]パレットベースコーディングでは、ビデオデータの特定のエリアが比較的少数の色を有すると仮定され得る。ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆる「パレット」をコーディングし得る。ブロック中の各ピクセルは、ピクセルの色値を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオコーダは、ブロック中のピクセルの色値をパレット中の適切な色値に関係付けるピクセルについてのインデックスをコーディングし得る。
【0026】
[0034]上記の例では、ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについての(パレットインデックス値とも呼ばれる)パレットインデックスを用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのパレットインデックスを取得し得る。ビデオデコーダは、ブロックのピクセル値を再構成するために、ピクセルのパレットインデックスをパレットのエントリに関係付け得る。ピクセル(および/またはピクセル値を示す関係するパレットインデックス)は、概して、サンプルと呼ばれることがある。
【0029】
[0037]いくつかの例では、パレットは、前にコーディングされたブロックからの情報を使用して構成され得る。すなわち、パレットは、前の(1つまたは複数の)ブロックをコーディングするために使用された(1つまたは複数の)パレットから予測される、予測されたパレットエントリを含んでいることがある。たとえば、規格提案ドキュメント、Wei Puら、「AHG10: Suggested Software for Palette Coding based on RExt6.0」、JCTVC-Q0094、バレンシア、スペイン、2014年3月27日~4月4日(以下、JCTVC-Q0094)に記載されているように、パレットは、予測子パレットからコピーされたエントリを含み得る。予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成されたサンプルからのパレットエントリを含み得る。予測子パレット中の各エントリについて、バイナリフラグが、そのフラグに関連付けられたエントリが現在パレットにコピーされる(たとえば、フラグ=1によって示される)かどうかを示すようにコーディングされ得る。バイナリフラグのストリングは、バイナリパレット予測ベクトルと呼ばれることがある。現在ブロックをコーディングするためのパレットは、(たとえば、パレット予測ベクトルとは別に)明示的にコーディングされ得る、いくつかの新しいパレットエントリをも含み得る。新しいエントリの数のインジケーションもコーディングされ得る。予測されたエントリと新しいエントリとの和が、ブロックのための総パレットサイズを示し得る。
【0030】
[0038]いくつかの例では、パレットベースコーディングモードを用いてコーディングされたブロック中の各サンプルは、以下に記載されるように、3つのパレットモードのうちの1つを使用してコーディングされ得る。
【0031】
[0039]エスケープモード:このモードでは、サンプル値がパレットエントリとしてパレットに含まれないことがあり、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされる。エスケープモードは、新しいパレットエントリのシグナリングと同様であるが、新しいパレットエントリについて、色成分値が量子化されない。
【0032】
[0040](コピーアバブ(Copy Above)モードとも呼ばれる)コピートップ(Copy Top)モード:このモードでは、現在のサンプルについてのパレットエントリインデックスが、ブロック中ですぐ上に位置するサンプルからコピーされる。コピーの長さ(ランレングス)を指定するシンタックス要素のみが、コピートップモードについてエンコーダによってビットストリーム中でシグナリングされる。
【0033】
[0041](値モードまたは左モードとも呼ばれる)インデックスモード:このモードでは、パレットエントリインデックスの値が、たとえば、切捨てバイナリコードと、後続の、スキャン順序でのいくつの後続のピクセルが、シグナリングされたものと同じインデックスを共有するか(ランレングス)を指定する別のシンタックス要素とを使用して、エンコーダによってビットストリーム中で明示的にシグナリングされる。
【0038】
[0046](エスケープピクセルとも呼ばれる)エスケープサンプルは、ブロックをコーディングするためのパレット中で表される対応する色を有しないブロックのサンプル(またはピクセル)であり得る。したがって、エスケープサンプルは、パレットからの色エントリ(またはピクセル値)を使用して再構成されないことがある。代わりに、エスケープサンプルのための色値が、パレットの色値とは別にビットストリーム中でシグナリングされる。
【0040】
[0048]上記で説明された例では、ビデオコーダは、ブロックの特定のサンプル値について、追加のサンプルがエスケープサンプル(たとえば、ブロックをコーディングするためのパレット中で表される色値を有しないサンプル)としてコーディングされることを示すために、追加のインデックスを表すデータをコーディングし得る。ビデオコーダはまた、エスケープサンプルの(1つまたは複数の)色値をコーディングし得る。この例では、明示的シンタックスを使用してシグナリングされるべき2つの可能なモード(たとえば、コピートップモード、あるいは(インデックスモードまたは値モードとも呼ばれる)インデックスモード)のみがある。たとえば、サンプルがインデックスモードでコーディングされ、インデックスモードのためのインデックスがエスケープインデックス(たとえば、パレットへの上述の追加のインデックス)に等しい場合、ビデオコーダは、コーディングされるべきサンプルをエスケープサンプルと推論し得る。いくつかの事例では、ランは、エスケープサンプルとともにシグナリングされない。
【0045】
[0053]本開示の技法は、一般にエスケープピクセルコーディングに関する。エスケープピクセルは、ブロック中のエスケープピクセル位置、および4:4:4、4:2:2、4:2:0などのクロマフォーマット、および/またはモノクロームに応じて、ルーマサンプル、またはルーマサンプルと2つのクロマサンプルとの組合せを備え得る。色成分サンプルは、パレットモードの一部としてコーディングされるべき元のピクセルを表し、シグナリングされる値は量子化され得る。ルーマサンプルおよびクロマサンプルは、元のピクセルが有し得る最大可能値を表す異なるビット深度を有し得る。パレットエスケープ値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表すpalette_escape_valによって表され得、この値は、エスケープピクセルを再構成するために逆量子化され得る。
【0064】
[0072]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、上記で述べられ、HEVCに記載されているHEVC規格など、ビデオ圧縮規格に従って動作する。ベースHEVC規格に加えて、スケーラブルビデオコーディング、マルチビュービデオコーディング、およびHEVCのための3Dコーディング拡張、ならびにいわゆるレンジ拡張(RExt:Range Extension)およびスクリーンコンテンツコーディング(SCC:Screen Content Coding)がある。さらに、たとえば、本開示で説明されるようなパレットベースコーディングモードが、HEVC規格の拡張のために与えられ得る。いくつかの例では、パレットベースコーディングのための本開示で説明される技法が、ITU-T-H.264/AVC規格または将来の規格など、他のビデオコーディング規格に従って動作するように構成されたエンコーダおよびデコーダに適用され得る。したがって、HEVCコーデックにおけるコーディングユニット(CU)または予測ユニット(PU)のコーディングのためのパレットベースコーディングモードの適用が、例として説明される。
【0077】
[0085]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明されたイントラ予測またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ20およびビデオデコーダ30は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得る。ブロック中の各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。
【0081】
[0089]エスケープモードの場合、ビデオエンコーダ20はビットストリーム中でシグナリングし、ビデオデコーダ30は、明示的にシグナリングされたピクセル値をビットストリーム中で受信する。いくつかの例では、本開示の態様によれば、ビデオエンコーダ20およびビデオデコーダ30は、図5に関して以下で説明される技法など、エスケープピクセルコーディングのための本明細書で説明される技法の任意の組合せを実行するように構成され得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、シグナリングされるビットストリームエスケープピクセル値のための規範制限(normative restriction)を導入し得、さもなければ、無制限のときに構文解析問題を生じ得る。たとえば、ビデオエンコーダ20は、16個、32個、または別の数のビンなど、最大ビット深度に基づいてエスケープピクセル値を符号化し得る。同様に、ビデオデコーダ30は、ビットストリームからのエスケープ値をパースし、最大ビット深度に基づいてエスケープ値を復号し得る。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値のための規範制限を導入し得る。
【0084】
[0092]ビデオエンコーダ20は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ20は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースコーディングモードは、HEVCによって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオエンコーダ20は、一例では、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションのピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロック中のピクセルロケーションのうちの少なくともいくつかをパレット中の選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。シグナリングされた情報は、ビデオデータを復号するためにビデオデコーダ30によって使用され得る。
【0085】
[0093]図2の例では、ビデオエンコーダ20は、予測処理ユニット100と、ビデオデータメモリ101と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニットと、動き補償ユニットとを含む(図示せず)。ビデオエンコーダ20は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース符号化ユニット122をも含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0094】
[0102]パレットベース符号化ユニット122は、たとえば、パレットベース符号化モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース符号化ユニット122は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。様々な機能が、パレットベース符号化ユニット122によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【0111】
[0119]ビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUなど、ビデオデータの様々なブロックを選択的に復号するように構成され得る。非パレットベースコーディングモードは、HEVCによって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオデコーダ30は、一例では、(たとえば、ビットストリーム中のシグナリングされたまたは予測された情報に基づいて)ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。
【0112】
[0120]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、ビデオデータメモリ151と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。ビデオデコーダ30は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース復号ユニット165をも含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
【0123】
[0131]ビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。パレットベース復号ユニット165は、たとえば、パレットベース復号モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース復号ユニット165は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。様々な機能が、パレットベース復号ユニット165によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
【0124】
[0132]パレットベース復号ユニット165は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実行し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット152は、たとえば、HEVCインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、HEVCコーディングプロセスに従って生成されるCUまたはPUであり得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの1つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
【0130】
[0138]他の例は、エスケープ値またはエスケープ値のための最大値に対する量子化の影響を考慮する。たとえば、ビデオエンコーダ20および/または量子化ユニット106は、値を量子化ステップサイズ(qStep)で除算し、次いで結果を丸めることによって、エスケープ値など、値を量子化し得る。ビデオデコーダ30および逆量子化ユニット154は、そのような値にqStep値を乗算することによって、値を逆量子化し得る。qStep値は、量子化パラメータの関数として決定される。しばしば、qStep値は1よりも大きくなり得、したがって、量子化(たとえば、qStepで除算すること)は、エスケープ値など、量子化された値を表すために使用されるビット数を低減することになり得る。しかしながら、いくつかの量子化パラメータ値について、qStepは1よりも小さくなり得、このことは、量子化が、エスケープ値を表すために使用されるビット数を低減せず、むしろ、量子化が、エスケープ値を表すために使用されるビット数を拡大するかまたは増加させることを意味し得る。言い換えれば、qStepが1よりも小さい場合、値をqStepで除算する量子化プロセスは、値に1よりも大きい数を事実上乗算している。
【0140】
[0148]図4の例では、第1のパレット184の各々は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ202~206を含む。エントリ202~206は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Cを含むピクセル値に、インデックス値を関係付ける。本明細書で説明されるように、第1のCU180の実際のピクセル値をコーディングするのではなく、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、インデックス1~3を使用してブロックのピクセルをコーディングするためにパレットベースコーディングを使用し得る。すなわち、第1のCU180の各ピクセル位置について、ビデオエンコーダ20はピクセルについてのインデックス値を符号化し得、ここで、インデックス値は、第1のパレット184のうちの1つまたは複数の中のピクセル値に関連付けられる。ビデオデコーダ30は、ビットストリームからインデックス値を取得し、インデックス値と第1のパレット184のうちの1つまたは複数とを使用してピクセル値を再構成し得る。したがって、第1のパレット184は、パレットベース復号におけるビデオデコーダ30による使用のために、符号化ビデオデータビットストリーム中でビデオエンコーダ20によって送信される。
【0144】
[0152]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレット予測を実行するとき、(パレット予測子テーブルと呼ばれることもある)パレット予測子リストを決定し得る。パレット予測子リストは、現在ブロックをコーディングするためのパレットの1つまたは複数のエントリを予測するために使用される1つまたは複数の隣接ブロックのパレットからのエントリを含み得る。ビデオエンコーダ20およびビデオデコーダ30は、同じ様式でリストを構成し得る。ビデオエンコーダ20およびビデオデコーダ30は、パレット予測子リストのどのエントリが現在ブロックをコーディングするためのパレット中に含まれるべきであるかを示すために、(ベクトル216などの)データをコーディングし得る。
【0155】
[0163]一例では、エスケープサンプルをシグナリングまたはコーディングするために、ビデオエンコーダ20およびビデオデコーダ30は、パレット244に追加のインデックスを追加し得る(エントリインデックス4)。ビデオエンコーダ20およびビデオデコーダ30は、サンプルがエスケープサンプルとしてコーディングされることを示すために、パレット244への追加のインデックス、たとえば、インデックス4を使用し得る。しかしながら、追加のインデックスは、関連付けられた色値を有しない。そうではなく、ビデオエンコーダ20およびビデオデコーダ30はまた、追加のインデックスに関連付けられた各サンプルのための色値をコーディングする。サンプルがエスケープサンプルとしてコーディングされない場合、ビデオエンコーダ20およびビデオデコーダ30は、palette_modeシンタックス要素など、モードがコピートップモードであるのかインデックスモードであるのかを示すためのデータをコーディングし得る。
【0159】
[0167]上記の例では、ビデオデコーダ30はまた、サンプルのためのパレットインデックスを復号し得る。ビデオデコーダ30は、復号されているサンプルのためのサンプル値をどのように復号すべきかを決定するために、復号されたパレットインデックスを使用し得る。たとえば、サンプルが4のインデックス(たとえば、エスケープサンプルに関連付けられたインデックス)を有する場合、ビデオデコーダ30は、サンプルがエスケープコード化サンプルであると決定し得、サンプルのためのサンプル値を復号し得る。サンプルが4以外のインデックスを有する場合、ビデオデコーダ30は、復号されたインデックスに基づいてパレット244から適切なサンプル値を決定し得る。ビデオデコーダ30はまた、所与のスキャン順序で現在のサンプルとともにコーディングされている他のサンプルのランを示す1つまたは複数のシンタックス要素を復号し得る。ビデオデコーダ30は、パレット244のサイズ、たとえば、4つのインデックスに等しい入力パラメータを有する切捨てバイナリコードを使用してインデックスを復号し得る。得られた切捨てバイナリコードは、プレフィックスとサフィックス(たとえば、末尾の1または0)とを含み得る。
【0165】
[0173]色成分ごとのシーケンスパラメータセット(SPS)中でシグナリングされ得る入力ビット深度が知られているので、色成分の最大可能値も知られていることがある。色成分のこの最大可能値は、(1<<bitDepth)-1として計算され得、ここで、bitDepthは色成分ビット深度であり、「<<」演算子は2の補数整数表現の算術左シフトを表す。再構成されたエスケープコード化サンプル色成分値は、両端値を含む、0から(1<<bitDepth)-1の間にわたり得る。したがって、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valは、入力または再構成されたピクセル値と同じレンジ内にあるように制限され得る。言い換えれば、コンフォーマントビットストリームは、(1<<bitDepth)-1よりも大きいpalette_escape_val値を含んでいないことがあり、ここで、bitDepthは色成分入力ビット深度である。さらなる例では、bitDepthはまた、出力ビット深度、または処理のために使用される内部ビット深度であり得る。
【0168】
[0176]代替的に、本開示の別の例では、エスケープサンプルに適用されるものと同様の量子化プロセスが、変換係数のために使用され得る。そのような例では、シンタックス要素palette_escape_valは、変換係数として扱われ得、変換係数に課される制限は、このシンタックス要素のシグナリングされる値を限定するために適用され得る。より詳細には、さらなる一例では、エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ、ここで、大きさに対する制限を含むこと、シグナリング、および随意に同じライスパラメータ適応を使用することを伴う2値化など、プロセスのすべての態様が借りられる。いくつかの例では、プロセスのいくつかの態様のみが借りられ、一例では、たとえば、大きさに対する制限のみが再利用される。別の例では、係数コーディングのために使用される2値化は、大きさ制限とともに使用される。固定ライスパラメータは、ライスパラメータの適応の代わりに使用され得る。別の例では、使用される固定ライスパラメータは3であり得る。代替例では、固定ライスパラメータは、3よりも大きくまたは小さくなり得る。
【0186】
[0194]extended_precision_processing_flagが0に等しい一例では、palette_escape_valの2値化は、k次指数ゴロム(EGk:k-th order Exponential-Golomb)2値化プロセスを呼び出すことによって導出され得る。一例では、kは3に等しく設定され得る。代替例では、kは、任意の値、たとえば、0、1、2、3、4、5、6などに設定され得る。
イ 図面の記載事項
【図2】
[図:0001436520000001.jpg]
【図3】
[図:0001436520000002.jpg]
【図4】
[図:0001436520000003.jpg]
【図5】
[図:0001436520000004.jpg]
(2) 引用発明の認定
ア 上記(1)アの発明の詳細な説明の記載事項における段落[0093]の記載事項及び上記(1)イの図面の記載事項における図2の記載によると、ビデオエンコーダ20では、ビデオデータメモリ101から出力されたビデオデータを予測処理ユニット100に入力し、ビデオデータメモリ101から出力されたビデオデータと予測処理ユニット100の出力とを残差生成ユニット102に入力し、残差生成ユニット102の出力を変換処理ユニット104に出力し、変換処理ユニット104の出力を量子化ユニット106に出力し、量子化ユニット106の出力をエントロピー符号化ユニット118に出力し、エントロピー符号化ユニット118の出力をビットストリームとして出力し、予測処理ユニット100は、パレットベース符号化ユニット122を含むといえる。
イ 上記(1)アの発明の詳細な説明の記載事項における段落[0120]の記載事項及び上記(1)イの図面の記載事項における図3の記載によると、ビデオデコーダ30では、符号化ビットストリームをビデオデータメモリ151に入力し、ビデオデータメモリ151の出力をエントロピー復号ユニット150に入力し、エントロピー復号ユニット150の出力を予測処理ユニット152と逆量子化ユニット154とに出力し、逆量子化ユニット154の出力を逆変換処理ユニット156に出力し、予測処理ユニット152の出力と逆変換処理ユニット156の出力とを再構成ユニット158に出力し、再構成ユニット158の出力をフィルタユニット160と復号ピクチャバッファ162とを介して復号ビデオとして出力し、予測処理ユニット152は、パレットベース復号ユニット165を含むといえる。
ウ 上記(1)アの発明の詳細な説明の記載事項における段落[0038]に「以下に記載されるように、3つのパレットモード」と記載されているが、この「以下に記載」された「3つのパレットモード」とは、段落[0039]における「エスケープモード」 、段落[0040]における「コピートップモード」、及び段落 [0041]における「インデックスモード」のことである。
エ 上記(1)アの発明の詳細な説明の記載事項における段落[0132]に「パレットベース復号ユニット165は」、「上記の動作を実行し得る」と記載されているが、この「パレットベース復号ユニット165」が行う「上記の動作」とは、段落[0132]に記載された「パレットベース復号モードが」、「CUまたはPUのために選択されるとき、パレットベース復号を実行し得」、「ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成ように構成され得る」動作のことである。
オ 上記(1)の摘記事項、上記ア~エから、引用文献1には、次の発明(以下、「引用発明」という。)が記載されている。
なお、各構成の末尾に、対応する段落等を付し、記号a~ajは分説するために当審にて付した。以下、「構成a」~「構成aj」という。
「a ビデオコーディングおよび圧縮のための技法、特に、ビデオデータのパレットベースコーディングのための技法において、([0029])
b ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実行し、([0004])
c パレットモードは、ピクチャ中のピクセルをコーディングするための別の技法であり、([0005])
d パレットベースコーディング技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得、([0031])
e パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得、([0032])
f パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得、([0032])
g ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、「パレット」をコーディングし得、([0033])
h ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについての(パレットインデックス値とも呼ばれる)パレットインデックスを用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得、([0034])
i ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのパレットインデックスを取得し得、([0034])
j パレットは、前にコーディングされたブロックからの情報を使用して構成され得、前の(1つまたは複数の)ブロックをコーディングするために使用された(1つまたは複数の)パレットから予測される、予測されたパレットエントリを含み、たとえば予測子パレットからコピーされたエントリを含み、予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成されたサンプルからのパレットエントリを含み得、([0037])
k パレットベースコーディングモードを用いてコーディングされたブロック中の各サンプルは、エスケープモード、コピートップモード、及びインデックスモードの3つのパレットモードのうちの1つを使用してコーディングされ得、([0038]、ウ)
l エスケープモードでは、サンプル値がパレットエントリとしてパレットに含まれないことがあり、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされ、([0039])
m エスケープサンプルは、ブロックをコーディングするためのパレット中で表される対応する色を有しないブロックのサンプルであり得、エスケープサンプルのための色値が、パレットの色値とは別にビットストリーム中でシグナリングされ、([0046])
n ビデオコーダは、追加のサンプルがエスケープサンプルとしてコーディングされることを示すために、追加のインデックスを表すデータをコーディングし得、エスケープサンプルの(1つまたは複数の)色値をコーディングし得、([0048])
o 色成分サンプルは、パレットモードの一部としてコーディングされるべき元のピクセルを表し、シグナリングされる値は量子化され得、パレットエスケープ値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表すpalette_escape_valによって表され得、この値は、エスケープピクセルを再構成するために逆量子化され得、([0053])
p ビデオエンコーダ20およびビデオデコーダ30は、HEVCに記載されているHEVC規格など、ビデオ圧縮規格に従って動作し、パレットベースコーディングモードが、HEVC規格の拡張のために与えられ得、HEVCコーデックにおける予測ユニット(PU)のコーディングのためのパレットベースコーディングモードの適用が、説明され、([0072])
q ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングを実行するように構成され得、パレットベースコーディングでは、イントラ予測またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ20およびビデオデコーダ30は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得、ブロック中の各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得、([0085])
r ビデオエンコーダ20およびビデオデコーダ30は、シグナリングされるビットストリームエスケープピクセル値のための規範制限(normative restriction)を導入し得、ビデオデコーダ30は、ビットストリームからのエスケープ値をパースし、最大ビット深度に基づいてエスケープ値を復号し得、ビデオエンコーダ20およびビデオデコーダ30は、量子化信号エスケープ値、再構成されたエスケープ値のための規範制限を導入し得、([0089])
s ビデオエンコーダ20は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得、([0092])
t ビデオエンコーダ20では、ビデオデータメモリ101から出力されたビデオデータを予測処理ユニット100に入力し、ビデオデータメモリ101から出力されたビデオデータと予測処理ユニット100の出力とを残差生成ユニット102に入力し、残差生成ユニット102の出力を変換処理ユニット104に出力し、変換処理ユニット104の出力を量子化ユニット106に出力し、量子化ユニット106の出力をエントロピー符号化ユニット118に出力し、エントロピー符号化ユニット118からビットストリームを出力し、予測処理ユニット100は、パレットベース符号化ユニット122を含み、(ア)
u パレットベース符号化ユニット122は、パレットベース符号化モードが、PUのために選択されるとき、パレットベース符号化を実行し得、([0102])
v ビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的に復号するように構成され得、([0119])
w ビデオデコーダ30では、符号化ビットストリームをビデオデータメモリ151に入力し、ビデオデータメモリ151の出力をエントロピー復号ユニット150に入力し、エントロピー復号ユニット150の出力を予測処理ユニット152と逆量子化ユニット154とに出力し、逆量子化ユニット154の出力を逆変換処理ユニット156に出力し、予測処理ユニット152の出力と逆変換処理ユニット156の出力とを再構成ユニット158に出力し、再構成ユニット158の出力をフィルタユニット160と復号ピクチャバッファ162とを介して復号ビデオとして出力し、予測処理ユニット152は、パレットベース復号ユニット165を含み、(イ)
x パレットベース復号ユニット165は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、パレットベース復号モードが、PUのために選択されるとき、パレットベース復号を実行し得、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成ように構成され得る動作を実行し得、パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット152は、HEVCインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号し、([0132]、エ)
y ビデオエンコーダ20および/または量子化ユニット106は、値を量子化ステップサイズ(qStep)で除算し、次いで結果を丸めることによって、エスケープ値など、値を量子化し得、ビデオデコーダ30および逆量子化ユニット154は、そのような値にqStep値を乗算することによって、値を逆量子化し得、([0138])
z 第1のパレット184の各々は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ202~206を含み、エントリ202~206は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Cを含むピクセル値に、インデックス値を関係付け、第1のCU180の実際のピクセル値をコーディングするのではなく、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、インデックス1~3を使用してブロックのピクセルをコーディングするためにパレットベースコーディングを使用し得、第1のCU180の各ピクセル位置について、ビデオエンコーダ20はピクセルについてのインデックス値を符号化し得、インデックス値は、第1のパレット184のうちの1つまたは複数の中のピクセル値に関連付けられ、ビデオデコーダ30は、ビットストリームからインデックス値を取得し、インデックス値と第1のパレット184のうちの1つまたは複数とを使用してピクセル値を再構成し得、([0148])
aa ビデオエンコーダ20およびビデオデコーダ30は、パレット予測を実行するとき、(パレット予測子テーブルと呼ばれることもある)パレット予測子リストを決定し得、パレット予測子リストは、現在ブロックをコーディングするためのパレットの1つまたは複数のエントリを予測するために使用される1つまたは複数の隣接ブロックのパレットからのエントリを含み得、([0152])
ab エスケープサンプルをシグナリングまたはコーディングするために、ビデオエンコーダ20およびビデオデコーダ30は、パレット244に追加のインデックスを追加し得(エントリインデックス4)、ビデオエンコーダ20およびビデオデコーダ30は、サンプルがエスケープサンプルとしてコーディングされることを示すために、パレット244への追加のインデックス4を使用し得、ビデオエンコーダ20およびビデオデコーダ30は、追加のインデックスに関連付けられた各サンプルのための色値をコーディングし、([0163])
ac ビデオデコーダ30は、サンプルのためのパレットインデックスを復号し得、サンプルが4のインデックス(たとえば、エスケープサンプルに関連付けられたインデックス)を有する場合、ビデオデコーダ30は、サンプルがエスケープコード化サンプルであると決定し得、サンプルのためのサンプル値を復号し、サンプルが4以外のインデックスを有する場合、ビデオデコーダ30は、復号されたインデックスに基づいてパレット244から適切なサンプル値を決定し得、([0167])
ad 色成分の最大可能値は、(1<<bitDepth)-1として計算され得、再構成されたエスケープコード化サンプル色成分値は、両端値を含む、0から(1<<bitDepth)-1の間にわたり、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valは、入力または再構成されたピクセル値と同じレンジ内にあるように制限され得、bitDepthは色成分入力ビット深度、出力ビット深度、または処理のために使用される内部ビット深度であり得、([0173])
ae エスケープサンプルに適用されるものと同様の量子化プロセスが、変換係数のために使用され得、シンタックス要素palette_escape_valは、変換係数として扱われ、変換係数に課される制限は、このシンタックス要素のシグナリングされる値を限定するために適用され得、エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ、([0176])
af palette_escape_valの2値化は、k次指数ゴロム(EGk:k-th order Exponential-Golomb)2値化プロセスを呼び出すことによって導出され、一例では、kは3に等しく設定され得、代替例では、kは、任意の値、たとえば、0、1、2、3、4、5、6などに設定され得る、([0194])
a 技法。」
なお、「パレット符号化ユニット122」では、パレットベース符号化を行うことが明らかであり、段落[0102]における「パレットベース復号を実行し得る」という記載は、「パレットベース符号化を実行し得る」の誤記であることは明らかであるから、構成uも「パレットベース符号化を実行し得」と認定した。
2 引用文献3について
(1) 引用文献3に記載された事項
同じく当審拒絶理由で引用された引用文献3には、「変換量子化バイパスモード」及び「変換スキップモード」に関して、以下の事項が記載されている。
[図:0001436520000005.jpg]
[図:0001436520000006.jpg]
(第187ページ第21行~第188ページ第4行)
[図:0001436520000007.jpg]
(第188ページ第5行~第15行)
(2) 引用文献3に記載された技術事項
上記(1)の摘記事項から、引用文献3には、次の技術事項(以下、「引用文献3技術事項」という。)が記載されている。
「変換量子化バイパスモードは、CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いないモードであり、cu_transquant_bypass_flagシンタックスで変換量子化バイパスモードのオン/オフを示すこと、また、変換スキップモードは、直交変換をスキップし、直交変換係数用の量子化器をそのまま用いるモードであり、transform_skip_flagシンタックスで変換スキップモードのオン/オフを示し、TUが変換量子化バイパスモードのCUに含まれる場合、TUのtransform_skip_flagは伝送されないこと。」
3 引用文献4について
(1) 引用文献4に記載された事項
同じく当審拒絶理由で引用された引用文献4には、パレットモードの符号化復号化の具体化手法及び変換スキップモードの量子化パラメータに関する周知技術として、以下の事項が記載されている。
ア「
7.4.8.6 Palette coding syntax
[図:0001436520000008.jpg]
[図:0001436520000009.jpg]
[図:0001436520000010.jpg]
(第65~67ページ)
」
イ「
min_qp_prime_ts_minus4 specifies the minimum allowed quantization parameter for transform skip mode as follows:
QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4 (7-12)
(第85ページ第46行~第47行)
(当審仮訳)
min_qp_prime_ts_minus4 は、変換スキップモードにおける最小許容量子化パラメータを以下のように指定する:
QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4 (7-12)
」
ウ「
In the following semantics, the array indices x0, y0 specify the location ( x0, y0 ) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture. The array indices xC, yC specify the location ( xC, yC ) of the sample relative to the top-left luma sample of the picture. The array index startComp specifies the first colour component of the current palette table. startComp equal to 0 indicates the Y component; startComp equal to 1 indicates the Cb component; startComp equal to 2 indicates the Cr component. numComps specifies the number of colour components in the current palette table.
The predictor palette consists of palette entries from previous coding units that are used to predict the entries in the current palette.
The variable PredictorPaletteSize[ startComp ] specifies the size of the predictor palette for the first colour component of the current palette table startComp. PredictorPaletteSize is derived as specified in clause XXX.
The variable PalettePredictorEntryReuseFlags[ i ] equal to 1 specifies that the i-th entry in the predictor palette is reused in the current palette. PalettePredictorEntryReuseFlags[ i ] equal to 0 specifies that the i-th entry in the predictor palette is not an entry in the current palette. All elements of the array PalettePredictorEntryReuseFlags[ i ] are initialized to 0.
(第139ページ第2行~第14行)
(当審仮訳)
以下のセマンティクスにおいて、配列インデックス x0, y0 は、対象となる符号化ブロックの左上輝度サンプルの位置 (x0, y0) を、画像の左上輝度サンプルを基準として指定する。配列インデックス xC, yC は、サンプルの位置 (xC, yC) を、画像の左上輝度サンプルを基準として指定する。配列インデックス startComp は、現在のパレットテーブルの最初の色成分を指定する。startComp が 0 の場合は Y 成分、startComp が 1 の場合は Cb 成分、startComp が 2 の場合は Cr 成分を示す。numComps は、現在のパレットテーブルの色成分数を指定する。
予測子パレットは、現在のパレットのエントリを予測するために使用される、以前のコーディングユニットからのパレットエントリで構成される。
変数 PredictorPaletteSize[ startComp ] は、現在のパレットテーブル startComp の最初の色成分に対する予測子パレットのサイズを指定する。PredictorPaletteSize は条項 XXX に規定される方法で導出される。
変数 PalettePredictorEntryReuseFlags[ i ] が 1 の場合、予測子パレットの i 番目のエントリが現在のパレットで再利用されることを指定する。PalettePredictorEntryReuseFlags[ i ] が 0 の場合、予測子パレットの i 番目のエントリは現在のパレットのエントリではないことを示す。配列 PalettePredictorEntryReuseFlags[ i ] の全要素は 0 で初期化される。
」
エ「
palette_predictor_run is used to determine the number of zeros that precede a non-zero entry in the array PalettePredictorEntryReuseFlags.
It is a requirement of bitstream conformance that the value of palette_predictor_run shall be in the range of 0 to ( PredictorPaletteSize - predictorEntryIdx ), inclusive, where predictorEntryIdx corresponds to the current position in the array PalettePredictorEntryReuseFlags. The variable NumPredictedPaletteEntries specifies the number of entries in the current palette that are reused from the predictor palette. The value of NumPredictedPaletteEntries shall be in the range of 0 to palette_max_size, inclusive.
(第139ページ第15行~第21行)
(当審仮訳)
palette_predictor_run は、配列 PalettePredictorEntryReuseFlags 内の非ゼロエントリの前に置かれるゼロの数を決定するために使用される。
ビットストリームの適合性要件として、palette_predictor_run の値は 0 から ( PredictorPaletteSize - predictorEntryIdx ) の範囲(両端を含む)でなければならない。ここで predictorEntryIdx は配列 PalettePredictorEntryReuseFlags 内の現在の位置に対応する。変数 NumPredictedPaletteEntries は、現在のパレット内で予測子パレットから再利用されるエントリ数を指定する。NumPredictedPaletteEntries の値は、0 から palette_max_size までの範囲(両端を含む)でなければならない。
」
オ「
num_signalled_palette_entries specifies the number of entries in the current palette that are explicitly signalled for the first colour component of the current palette table startComp.
When num_signalled_palette_entries is not present, it is inferred to be equal to 0.
The variable CurrentPaletteSize[ startComp ] specifies the size of the current palette for the first colour component of the current palette table startComp and is derived as follows:
CurrentPaletteSize[ startComp ] = NumPredictedPaletteEntries + num_signalled_palette_entries (7-169)
The value of CurrentPaletteSize[ startComp ] shall be in the range of 0 to palette_max_size, inclusive.
(第139ページ第22行~第28行)
(当審仮訳)
num_signalled_palette_entries は、現在のパレットテーブル startComp の最初の色成分に対して明示的に指定された、現在のパレット内のエントリ数を指定する。
num_signalled_palette_entries が存在しない場合、0 とみなされる。
変数 CurrentPaletteSize[ startComp ] は、現在のパレットテーブル startComp の最初の色成分に対する現在のパレットのサイズを指定し、以下のように導出される:
CurrentPaletteSize[ startComp ] = NumPredictedPaletteEntries + num_signalled_palette_entries (7-169)
CurrentPaletteSize[ startComp ] の値は、0 から palette_max_size までの範囲(両端を含む)でなければならない。
」
カ「
new_palette_entries[ cIdx ][ i ] specifies the value for the i-th signalled palette entry for the colour component cIdx.
The variable PredictorPaletteEntries[ cIdx ][ i ] specifies the i-th element in the predictor palette for the colour component cIdx.
The variable CurrentPaletteEntries[ cIdx ][ i ] specifies the i-th element in the current palette for the colour component cIdx and is derived as follows:
numPredictedPaletteEntries = 0
for( i = 0; i < PredictorPaletteSize[ startComp ]; i++ )
if( PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx =startComp; cIdx < ( startComp + numComps ); cIdx++ )
CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries ] = PredictorPaletteEntries[ cIdx ][ i ]
numPredictedPaletteEntries++
}
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++) (7-170)
for( i = 0; i < num_signalled_palette_entries[startComp]; i++ )
CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries + i ] = new_palette_entries[ cIdx ][ i ]
(第139ページ第29行~第43行)
(当審仮訳)
new_palette_entries[ cIdx ][ i ] は、色成分 cIdx に対する i 番目にシグナルされるパレットエントリの値を指定する。
変数 PredictorPaletteEntries[ cIdx ][ i ] は、色成分 cIdx に対する予測子パレットの i 番目の要素を指定する。
変数CurrentPaletteEntries[ cIdx ][ i ]は、色成分cIdxに対する現在のパレットのi番目の要素を指定し、以下のように導出される:
numPredictedPaletteEntries = 0
for( i = 0; i < PredictorPaletteSize[ startComp ]; i++ )
if( PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx =startComp; cIdx < ( startComp + numComps ); cIdx++ )
CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries ] = PredictorPaletteEntries[ cIdx ][ i ]
numPredictedPaletteEntries++
}
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++) (7-170)
for( i = 0; i < num_signalled_palette_entries[startComp]; i++ )
CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries + i ] = new_palette_entries[ cIdx ][ i ]
」
キ「
palette_escape_val_present_flag equal to 1 specifies that the current coding unit contains at least one escape coded sample. escape_val_present_flag equal to 0 specifies that there are no escape coded samples in the current coding unit. When not present, the value of palette_escape_val_present_flag is inferred to be equal to 1.
The variable MaxPaletteIndex specifies the maximum possible value for a palette index for the current coding unit. The value of MaxPaletteIndex is set equal to CurrentPaletteSize[ startComp ] + palette_escape_val_present_flag.
(第139ページ第44行~第140ページ第2行)
(当審仮訳)
palette_escape_val_present_flag が 1 の場合、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれていることを示す。escape_val_present_flag が 0 の場合、現在のコーディングユニットにエスケープ符号化サンプルが存在しないことを示す。指定がない場合、palette_escape_val_present_flag の値は 1 とみなされる。
変数 MaxPaletteIndex は、現在のコーディングユニットにおけるパレットインデックスの最大可能値を指定する。MaxPaletteIndex の値は、CurrentPaletteSize[ startComp ] + palette_escape_val_present_flag に等しく設定される。
」
ク「
palette_transpose_flag equal to 1 specifies that vertical traverse scan is applied for scanning the indices for pixels in the current coding unit. palette_transpose_flag equal to 0 specifies that horizontal traverse scan is applied for scanning the indices for pixels in the current coding unit. When not present, the value of palette_transpose_flag is inferred to be equal to 0.
(第140ページ第20行~第23行)
(当審仮訳)
palette_transpose_flag が 1 の場合、現在のコーディングユニットにおける画素のインデックス走査に垂直走査が適用されることを指定する。palette_transpose_flag が 0 の場合、現在のコーディングユニットにおける画素のインデックス走査に水平走査が適用されることを指定する。指定がない場合、palette_transpose_flag の値は 0 とみなされる。
」
ケ「
copy_above_palette_indices_flag equal to 1 specifies that the palette index is equal to the palette index at the same location in the row above if horizontal traverse scan is used or the same location in the left column if vertical traverse scan is used. copy_above_palette_indices_flag equal to 0 specifies that an indication of the palette index of the sample is coded in the bitstream or inferred.
The variable CopyAboveIndicesFlag[ xC ][ yC ] equal to 1 specifies that the palette index is copied from the palette index in the row above (horizontal scan) or left column (vertical scan). CopyAboveIndicesFlag[ xC ][ yC ] equal to 0 specifies that the palette index is explicitly coded in the bitstream or inferred. The array indices xC, yC specify the location ( xC, yC ) of the sample relative to the top-left luma sample of the picture. The value of PaletteIndexMap[ xC ][ yC ] shall be in the range of 0 to ( MaxPaletteIndex ー 1), inclusive.
The variable PaletteIndexMap[ xC ][ yC ] specifies a palette index, which is an index to the array represented by CurrentPaletteEntries. The array indices xC, yC specify the location ( xC, yC ) of the sample relative to the top-left luma sample of the picture. The value of PaletteIndexMap[ xC ][ yC ] shall be in the range of 0 to (MaxPaletteIndex - 1), inclusive.
[Ed. (XX): In HEVC v4, a variable adjustedRefPaletteIndex is derived after this paragraph and used to adjust the value of CurrPaletteIndex]
[Ed. (BB): Same as above and in syntax table, in HEVC v4 SCC the - 1 is included in the variable.]
The variable PaletteRun specifies the number of consecutive locations with the same palette index as the position in the above row (horizontal scan) or in the left column (vertical scan) when CopyAboveIndicesFlag[ xC ][ yC ] is equal to 1 or specifies the number of consecutive locations with the same palette index when CopyAboveIndicesFlag[ xC ][ yC ] is equal to 0.
The variable PaletteMaxRun represents the maximum possible value for PaletteRun. It is a requirement of bitstream conformance that the value of PaletteMaxRun shall be greater than0.
(当審仮訳)
(第140ページ第27行~第141ページ第4行)
(当審仮訳)
copy_above_palette_indices_flag が 1 の場合、水平走査では行の上方、垂直走査では左列の同じ位置のパレットインデックスがパレットインデックスとして指定される。copy_above_palette_indices_flag が 0 の場合、サンプルのパレットインデックスの指示がビットストリームに符号化されるか、または推測される。
変数 CopyAboveIndicesFlag[ xC ][ yC ] が 1 の場合、パレットインデックスは上行(水平走査)または左列(垂直走査)のパレットインデックスからコピーされる。CopyAboveIndicesFlag[ xC ][ yC ] が 0 の場合、パレットインデックスはビットストリームに明示的に符号化されるか、または推測される。配列インデックス xC, yC は、画像の左上輝度サンプルに対するサンプルの位置 (xC, yC) を指定する。PaletteIndexMap[xC][yC] の値は 0 から (MaxPaletteIndex ー 1) の範囲(両端を含む)でなければならない。
変数 PaletteIndexMap[ xC ][ yC ] は、CurrentPaletteEntries で表される配列へのインデックスであるパレットインデックスを指定する。配列インデックス xC, yC は、画像の左上輝度サンプルを基準としたサンプルの位置 ( xC, yC ) を指定する。PaletteIndexMap[ xC ][ yC ] の値は、0 から (MaxPaletteIndex - 1) までの範囲(両端を含む)でなければならない。
[編注(XX):HEVC v4では、この段落の後に可変のadjustedRefPaletteIndexが導出され、CurrPaletteIndexの値を調整するために使用される]
[編注(BB):上記および構文表と同様に、HEVC v4 SCCでは変数に-1が含まれる。]
変数 PaletteRun は、CopyAboveIndicesFlag[ xC ][ yC ] が 1 の場合、上記行(水平走査)または左列(垂直走査)における位置と同じパレットインデックスを持つ連続した位置の数を指定し、CopyAboveIndicesFlag[ xC ][ yC ] が 0 の場合、同じパレットインデックスを持つ連続した位置の数を指定する。
変数 PaletteMaxRun は PaletteRun の最大可能値を表す。ビットストリーム準拠の要件として、PaletteMaxRun の値は 0 より大きくなければならない。
」
コ「
palette_escape_val specifies the quantized escape coded sample value for a component.
The variable PaletteEscapeVal[ cIdx ][ xC ][ yC ] specifies the escape value of a sample for which PaletteIndexMap[ xC ][ yC ] is equal to (MaxPaletteIndex - 1) and palette_escape_val_present_flag is equal to 1. The array index cIdx specifies the colour component. The array indices xC, yC specify the location ( xC, yC ) of the sample relative to the top-left luma sample of the picture.
It is a requirement of bitstream conformance that PaletteEscapeVal[ cIdx ][ xC ][ yC ] shall be in the range of 0 to (1 << ( BitDepthY + 1 ) ) - 1, inclusive, for cIdx equal to 0, and in the range of 0 to (1 << ( BitDepthC + 1 ) ) - 1, inclusive, for cIdx not equal to 0.
(当審仮訳)
(第141ページ第15行~第22行)
(当審仮訳)
palette_escape_val は、コンポーネントの量子化エスケープ符号化サンプル値を指定する。
変数 PaletteEscapeVal[ cIdx ][ xC ][ yC ] は、PaletteIndexMap[ xC ][ yC ] が (MaxPaletteIndex - 1) に等しく、かつ palette_escape_val_present_flag が 1 に等しいサンプルのエスケープ値を指定する。配列インデックス cIdx は色成分を指定する。配列インデックス xC, yC は、画像の左上輝度サンプルを基準としたサンプルの位置 (xC, yC) を指定する。
ビットストリーム適合性の要件として、PaletteEscapeVal [ cIdx ][ xC ][ yC ] は、cIdx が 0 の場合、0 から (1 << ( BitDepthY + 1 ) ) - 1 までの範囲(両端を含む)に、cIdx が 0 以外の場合、0 から (1 << ( BitDepthC + 1 ) ) - 1 までの範囲(両端を含む)に収まっていなければならない。
」
サ「
8.4.5.3 Decoding process for palette mode
Inputs to this process are:
- a location ( xCb, yCb ) specifying the top-left luma sample of the current block relative to the top-left luma sample of the current picture,
- a variable startComp specifies the first colour component in the palette table,
- a variable cIdx specifying the colour component of the current block,
- two variables nCbW and nCbH specifying the width and height of the current block, respectively.
Output of this process is an array recSamples[ x ][ y ], with x = 0.. nCbW - 1, y = 0.. nCbH - 1 specifying reconstructed sample values for the block.
Depending on the value of cIdx, the variables nSubWidth and nSubHeight are derived as follows:
- If cIdx is equal to 0, nSubWidth is set to 1 and nSubHeight is set to 1.
- Otherwise, nSubWidth is set to SubWidthC and nSubHeight is set to SubHeightC.
The ( nCbW x nCbH ) block of the reconstructed sample array recSamples at location ( xCb, yCb ) is represented by recSamples[ x ][ y ] with x = 0..nCTbW - 1 and y = 0..nCbH - 1, and the value of recSamples[ x ][ y ] for each x in the range of 0 to nCbW - 1, inclusive, and each y in the range of 0 to nCbH - 1, inclusive, is derived as follows:
- The variables xL and yL are derived as follows:
xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)
yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)
- The variable bIsEscapeSample is derived as follows:
- If PaletteIndexMap[ xCb + xL ][ yCb + yL ] is equal to MaxPaletteIndex and palette_escape_val_present_flag is equal to 1, bIsEscapeSample is set equal to 1.
- Otherwise, bIsEscapeSample is set equal to 0.
- If bIsEscapeSample is equal to 0, the following applies:
recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)
- Otherwise, if cu_transquant_bypass_flag is equal to 1, the following applies:
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)
- Otherwise (bIsEscapeSample is equal to 1 and cu_transquant_bypass_flag is equal to 0), the following ordered steps apply:
1. The derivation process for quantization parameters as specified in clause 8.7.1 is invoked with the location ( xCb, yCb ) specifying the top-left sample of the current block relative to the top-left sample of the current picture.
[Ed. (BB): QPs are already derived at the beginning of the intra CU decoding process so there is no need to derive them again within this subclause. Althought it is like that in HEVC v4 SCC, I think this redundancy can be removed. Please confirm. ]
2. The quantization parameter qP is derived as follows:
- If cIdx is equal to 0,
qP = Max( 0, Qp′Y ) (8-238)
- Otherwise, if cIdx is equal to 1,
qP = Max( 0, Qp′Cb ) (8-239)
- Otherwise (cIdx is equal to 2),
qP = Max( 0, Qp′Cr ) (8-240)
3. The variables bitDepth is derived as follows:
bitDepth = ( cIdx = = 0 ) ? BitDepthY : BitDepthC (8-241)
4. The list levelScale[ ] is specified as levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } with k = 0..5.
[Ed. (BB): For non-palette CUs, levelScale depends on rectNonTsFlag, should that be applied here too?]
5. The following applies:
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] *levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-243)
When one of the following conditions is true:
- cIdx is equal to 0 and numComps is equal to 1;
- cIdx is equal to 3;
the variable PredictorPaletteSize[startComp] and the array PredictorPaletteEntries are derived or modified as follows:
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] = PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
It is a requirement of bitstream conformance that the value of PredictorPaletteSize[ startComp ] shall be in the range of 0 to PaletteMaxPredictorSize, inclusive.
(第186ページ第18行~第188ページ第6行)
(当審仮訳)
8.4.5.3 パレットモードのための復号化プロセス
このプロセスの入力は次のとおりである:
- 現在のブロックの左上輝度サンプルを、現在の画面の左上輝度サンプルを基準に指定する位置 (xCb, yCb)
- パレットテーブル内の最初の色成分を指定する変数 startComp
- 現在のブロックの色成分を指定する変数 cIdx、
- 現在のブロックの幅と高さをそれぞれ指定する変数 nCbW および nCbH。
このプロセスの出力は、再構築されたブロックのサンプル値を指定する配列 recSamples[ x ][ y ] である。ここで x = 0.. nCbW - 1、y = 0.. nCbH - 1 である。
cIdxの値に応じて、変数nSubWidthとnSubHeightは以下のように導出される:
- cIdxが0の場合、nSubWidthは1に、nSubHeightは1に設定される。
- それ以外の場合、nSubWidthはSubWidthCに、nSubHeightはSubHeightCに設定される。
再構成されたサンプル配列 recSamples の ( xCb, yCb ) 位置における ( nCbW × nCbH ) ブロックは、x = 0.. nCTbW - 1、y = 0..nCbH - 1 であるrecSamples[ x ][ y ]で表され、0 から nCbW - 1 までの各 x および 0 から nCbH - 1 までの各 y について recSamples[ x ][ y ] の値は以下のように導出される:
- 変数 xL および yL は以下のように導出される:
xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)
yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)
- 変数 bIsEscapeSample は以下のように導出される:
- PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい場合、bIsEscapeSample は 1 に設定される。
- それ以外の場合は、bIsEscapeSample は 0 に設定される。
- bIsEscapeSample が 0 の場合、以下が適用される:
recSamples[ x ][ y ] =
CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)
- そうでない場合、cu_transquant_bypass_flag が 1 の場合、以下が適用される:
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)
- それ以外の場合(bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0)、以下の順序で処理される:
1. 8.7.1項で規定される量子化パラメータの導出プロセスを、現在のブロックの左上サンプルを現在のピクチャの左上サンプルに対して指定する位置 ( xCb, yCb ) で呼び出す。
[編注 (BB): QPはイントラCUデコードプロセスの開始時に既に導出されているため、本項内で再度導出する必要はない。HEVC v4 SCCではそのように記述されているが、この冗長性は削除可能と考えられる。確認願いたい。]
2. 量子化パラメータ qP は以下のように導出される:
- cIdx が 0 の場合、
qP = Max( 0, Qp′Y ) (8-238)
- それ以外の場合、cIdx が 1 の場合、
qP = Max( 0, Qp′Cb ) (8-239)
- それ以外の場合(cIdxが2の場合)、
qP = Max( 0, Qp′Cr ) (8-240)
3. 変数bitDepthは以下のように導出される:
bitDepth = ( cIdx = = 0 ) ? BitDepthY : BitDepthC (8-241)
4. リスト levelScale[ ] は levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } と指定され、k = 0..5 である。
[編注 (BB): パレット非対応 CU では levelScale は rectNonTsFlag に依存するが、ここでも適用すべきか?]
5. 以下の式が適用される:
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-243)
以下のいずれかの条件が真の場合:
- cIdx が 0 で numComps が 1 の場合;
- cIdx が 3 に等しい場合;
変数 PredictorPaletteSize[startComp] および配列 PredictorPaletteEntries は以下のように導出または変更される:
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ )
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ )
newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize = CurrentPaletteSize[ startComp ]
for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ )
if( !PalettePredictorEntryReuseFlags[ i ] ) {
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244)
newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] = PredictorPaletteEntries[ cIdx ][ i ]
newPredictorPaletteSize++
}
for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ )
for( i = 0; i < newPredictorPaletteSize; i++ )
PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]
PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
ビットストリーム適合性の要件として、PredictorPaletteSize[ startComp ] の値は 0 から PaletteMaxPredictorSize までの範囲(両端を含む)でなければならない。」
シ「
The luma quantization parameter Qp′Yis derived as follows:
Qp′Y = QpY + QpBdOffsetY (8-890)
(第269ページ第18行~第19行)
(当審仮訳)
ルーマ量子化パラメータ Qp′Yは以下のように導出される:
Qp′Y = QpY + QpBdOffsetY (8-890)
」
ス「
8.7.3 Scaling process for transform coefficients
Inputs to this process are:
- a luma location ( xTbY, yTbY ) specifying the top-left sample of the current luma transform block relative to the top-left luma sample of the current picture,
- a variable nTbW specifying the transform block width,
- a variable nTbH specifying the transform block height,
- a variable cIdx specifying the colour component of the current block,
- a variable bitDepth specifying the bit depth of the current colour component.
Output of this process is the (nTbW)x(nTbH) array d of scaled transform coefficients with elements d[ x ][ y ].
The quantization parameter qP is derived as follows:
- If cIdx is equal to 0 and transform_skip_flag[ xTbY ][ yTbY ] is equal to 0, the following applies:
qP = Qp′Y (8-905)
- Otherwise, if cIdx is equal to 0 (and transform_skip_flag[ xTbY ][ yTbY ] is equal to 1), the following applies:
qP = Max( QpPrimeTsMin, Qp′Y ) (8-906)
- Otherwise, if TuCResMode[ xTbY ][ yTbY ] is equal to 2, the following applies:
qP = Qp′CbCr (8-907)
- Otherwise, if cIdx is equal to 1, the following applies:
qP = Qp′Cb (8-908)
- Otherwise (cIdx is equal to 2), the following applies:
qP = Qp′Cr (8-909)
The variable rectNonTsFlag is derived as follows:
rectNonTsFlag = ( ( ( Log2( nTbW ) + Log2( nTbH ) ) & 1 ) = = 1 && transform_skip_flag[ xTbY ][ yTbY ] = = 0 ) (8-910)
The variables bdShift, rectNorm and bdOffset are derived as follows:
bdShift = bitDepth + ( ( rectNonTsFlag ? 1 : 0 ) + ( Log2( nTbW ) + Log2( nTbH ) ) / 2 ) - 5 + dep_quant_enabled_flag (8-911)
bdOffset = ( 1 << bdShift ) >> 1 (8-912)
The list levelScale[ ][ ] is specified as levelScale[ j ][ k ] = { { 40, 45, 51, 57, 64, 72 }, { 57, 64, 72, 80, 90, 102 } } with j = 0..1, k = 0..5.
The (nTbW)x(nTbH) array dz is set equal to the (nTbW)x(nTbH) array TransCoeffLevel[ xTbY ][ yTbY ][ cIdx ].
For the derivation of the scaled transform coefficients d[ x ][ y ] with x = 0..nTbW - 1, y = 0..nTbH - 1, the following applies:
- The intermediate scaling factor m[ x ][ y ] is derived as follows:
- If one or more of the following conditions are true, m[ x ][ y ] is set equal to 16:
- sps_scaling_list_enabled_flag is equal to 0.
- transform_skip_flag[ xTbY ][ yTbY ] is equal to 1.
- Otherwise, the following applies:
m[ x ][ y ] = ScalingFactor[ Log2( nTbW ) ][ Log2( nTbH ) ][ matrixId ][ x ][ y ],
with matrixId as specified in Table 7-4 (8-913)
- The scaling factor ls[ x ][ y ] is derived as follows:
- If dep_quant_enabled_flag is equal to 1, the following applies:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ rectNonTsFlag ][ (qP + 1) % 6 ] ) << ( (qP + 1) / 6 ) (8-914)
- Otherwise (dep_quant_enabled_flag is equal to 0), the following applies:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ rectNonTsFlag ][ qP % 6 ] ) << ( qP / 6 ) (8-915)
- When BdpcmFlag[ xTbY ][ yYbY ] is equal to 1, dz[ x ][ y ] is modified as follows:
- If BdpcmDir[ xTbY ][ yYbY ] is equal to 0 and x is greater than 0, the following applies:
dz[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dz[ x - 1 ][ y ] + dz[ x ][ y ]) (8-916)
- Otherwise, if BdpcmDir[ xTbY ][ yYbY ] is equal to 1 and y is greater than 0, the following applies:
dz[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dz[ x ][ y - 1 ] + dz[ x ][ y ]) (8-917)
- The value dnc[ x ][ y ] is derived as follows:
dnc[ x ][ y ] = ( dz[ x ][ y ] * ls[ x ][ y ] +bdOffset ) >> bdShift (8-918)
- The scaled transform coefficient d[ x ][ y ] is derived as follows:
d[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dnc[ x ][ y ] ) (8-919)
(第271ページ第第5行~第272ページ第21行)
(当審仮訳)
8.7.3 変換係数のためのスケーリングプロセス
このプロセスの入力は次のとおりである:
- 現在の輝度変換ブロックの左上サンプルを、現在の画像の左上輝度サンプルを基準に指定する輝度位置 ( xTbY, yTbY )、
- 変換ブロックの幅を指定する変数 nTbW、
- 変換ブロックの高さを指定する変数 nTbH、
- 現在のブロックの色成分を指定する変数 cIdx、
- 現在の色成分のビット深度を指定する変数 bitDepth。
この処理の出力は、要素 d[ x ][ y ] を持つスケーリング済み変換係数の (nTbW)x(nTbH) 配列 d である。
量子化パラメータ qP は以下のように導出される:
- cIdx が 0 で transform_skip_flag[ xTbY ][ yTbY ] が 0 の場合、以下が適用される:
qP = Qp′Y (8-905)
- それ以外の場合、cIdx が 0 (かつ transform_skip_flag[ xTbY ][ yTbY ] が 1) であれば、以下が適用される:
qP = Max( QpPrimeTsMin, Qp′Y ) (8-906)
- それ以外の場合、TuCResMode[ xTbY ][ yTbY ] が 2 のときは、以下が適用される:
qP = Qp′CbCr (8-907)
- それ以外の場合、cIdx が 1 のときは以下が適用される:
qP = Qp′Cb (8-908)
- それ以外の場合(cIdx が 2 のとき)、以下が適用される:
qP = Qp′Cr (8-909)
変数 rectNonTsFlag は以下のように導出される:
rectNonTsFlag = ( ( ( Log2( nTbW ) + Log2( nTbH ) ) & 1 ) = = 1 && transform_skip_flag[ xTbY ][ yTbY ] = = 0 ) (8-910)
変数 bdShift、rectNorm、bdOffset は以下のように導出される:
bdShift = bitDepth + ( ( rectNonTsFlag ? 1 : 0 ) + ( Log2( nTbW ) + Log2( nTbH ) ) / 2 ) - 5 + dep_quant_enabled_flag (8-911)
bdOffset = ( 1 << bdShift ) >> 1 (8-912)
リスト levelScale[ ][ ] は levelScale[ j ][ k ] = { { 40, 45, 51, 57, 64, 72 }, { 57, 64, 72, 80, 90, 102 } } と規定され、j = 0..1、k = 0..5 である。
(nTbW)x(nTbH) 配列 dz は、(nTbW)x(nTbH) 配列 TransCoeffLevel[ xTbY ][ yTbY ][ cIdx ] に等しく設定される。
スケーリングされた変換係数 d[ x ][ y ](x = 0..nTbW - 1, y = 0..nTbH - 1)の導出には、以下が適用される:
- 中間スケーリング係数 m[ x ][ y ] は以下のように導出される:
- 以下の条件のいずれかが真の場合、m[ x ][ y ] は 16 に設定される:
- sps_scaling_list_enabled_flag が 0 に等しい。
- transform_skip_flag[ xTbY ][ yTbY ] が 1 に等しい。
- それ以外の場合は、以下が適用される:
m[ x ][ y ] = ScalingFactor[ Log2( nTbW ) ][ Log2( nTbH ) ][ matrixId ][ x ][ y ]、
ここで matrixId は表 7-4に規定される値とする (8-913)
- スケーリング係数 ls[ x ][ y ] は以下のように導出される:
- dep_quant_enabled_flag が 1 の場合、以下が適用される:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ rectNonTsFlag ][ (qP + 1) % 6 ] ) << ( (qP + 1) / 6 ) (8-914)
- それ以外の場合(dep_quant_enabled_flag が 0 の場合)、以下が適用される:
ls[ x ][ y ] = ( m[ x ][ y ] * levelScale[ rectNonTsFlag ][ qP % 6 ] ) << ( qP / 6 ) (8-915)
- BdpcmFlag[ xTbY ][ yYbY ] が 1 の場合、dz[ x ][ y ] は以下のように変更される:
- BdpcmDir[ xTbY ][ yYbY ] が 0 で x が 0 より大きい場合、以下が適用される:
dz[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dz[ x - 1 ][ y ] + dz[ x ][ y ]) (8-916)
- それ以外の場合、BdpcmDir[ xTbY ][ yYbY ] が 1 で y が 0 より大きい場合、以下が適用される:
dz[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dz[ x ][ y - 1 ] + dz[ x ][ y ]) (8-917)
- dnc[ x ][ y ] の値は以下のように導出される:
dnc[ x ][ y ] = ( dz[ x ][ y ] * ls[ x ][ y ] +bdOffset ) >> bdShift (8-918)
- スケーリングされた変換係数 d[ x ][ y ] は以下のように導出される:
d[ x ][ y ] = Clip3( CoeffMin, CoeffMax, dnc[ x ][ y ] ) (8-919)
」
(2)周知技術について
上記(1)の記載事項によれば、引用文献4には、以下の周知技術が記載されているといえる。なお、以下の周知技術に関する事項は、当審仮訳に基づいている。
ア
(ア) 上記(1)アのパレットコーディングシンタックスにおける記載によると、「new_palette_entries[ cIdx ][ i ]」は、「/* Parsing new palette entries */」におけるfor文の中にある構文要素であるから、「new_palette_entries[ cIdx ][ i ]」によって示される情報は、ビットストリームからパーシングすることによって得られる情報であるといえる。
(イ) 上記(1)ウによると、「変数 PalettePredictorEntryReuseFlags[ i ] が 1 の場合、予測子パレットの i 番目のエントリが現在のパレットで再利用されることを指定」し、「PalettePredictorEntryReuseFlags[ i ] が 0 の場合、予測子パレットの i 番目のエントリは現在のパレットのエントリではないことを示す。」
(ウ) 上記(1)カのセマンティクスによると、「new_palette_entries[ cIdx ][ i ] は、色成分 cIdx に対する i 番目にシグナルされるパレットエントリの値を指定」し、「変数 PredictorPaletteEntries[ cIdx ][ i ] は、色成分 cIdx に対する予測子パレットの i 番目の要素を指定」し、「変数CurrentPaletteEntries[ cIdx ][ i ]は、色成分cIdxに対する現在のパレットのi番目の要素を指定」する。
(エ) 上記(1)エにおける変数CurrentPaletteEntries[ cIdx ][ i ]を導出する構文によれば、上記(イ)の変数 PalettePredictorEntryReuseFlags[ i ] が 1 の場合、上記(ウ)の変数PredictorPaletteEntries[ cIdx ][ i ]、すなわち色成分 cIdx に対する予測子パレットの i 番目の要素を変数CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries ]に格納し、変数 PalettePredictorEntryReuseFlags[ i ] が 1でない場合、すなわちPalettePredictorEntryReuseFlags[ i ]はフラグであるからその値が 0 である場合、new_palette_entries[ cIdx ][ i ]の要素を変数CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries ]に格納する。
ここで、上記構文によると、PalettePredictorEntryReuseFlags[ i ] が 1でない場合、numPredictedPaletteEntriesは、0であるから、上記CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries + i ]は、CurrentPaletteEntries[ cIdx ][ i ]となる。
(オ) 上記(イ)~(エ)を総合すると、「new_palette_entries[ cIdx ][ i ]」によって示される情報は、変数 PalettePredictorEntryReuseFlags[ i ]によって、予測子パレットの i 番目のエントリが現在のパレットのエントリではないことが示される場合、すなわち予測子パレットのi 番目のエントリが再利用されない場合に、色成分cIdxに対する現在のパレットのi番目の要素を指定する情報として変数CurrentPaletteEntries[ cIdx ][ i ]に格納される。
(カ) 上記(ア)及び(オ)によれば、「new_palette_entries[ cIdx ][ i ]」によって示される情報は、ビットストリームからパーシングすることによって得られる色成分cIdxに対する現在のパレットのi番目の要素を指定する情報であるといえる。
イ
(ア) 上記(1)アのパレットコーディングシンタックスにおける記載によると、「palette_escape_val」は、「* Parsing escape values */」におけるif文の中にある構文要素であるから、ビットストリームからパーシングすることによって得られるエスケープ値に関する情報であるといえる。
(イ) 上記(1)コのセマンティクスによると、「palette_escape_val」 は、コンポーネントの量子化エスケープ符号化サンプル値を指定する。
(ウ) 上記(1)アのパレットコーディングシンタックスにおける記載によると、「PaletteEscapeVal[ cIdx ][ xC ][ yC ] = palette_escape_val」とされていることから、上記(ア)及び(イ)を参照すると、「PaletteEscapeVal[ cIdx ][ xC ][ yC ]」に「palette_escape_val」で示すエスケープ値に関する情報であるコンポーネントの量子化エスケープ符号化サンプル値を指定する情報を格納するといえる。
ウ 上記(1)イの(7-12)式及びその直前の「min_qp_prime_ts_minus4 は、変換スキップモードにおける最小許容量子化パラメータを以下のように指定する」という記載によると、「QpPrimeTsMin」は、変換スキップモードにおける最小許容量子化パラメータである。
エ 上記(1)サのパレットモードのための復号化プロセスによると、この復号化プロセスの出力は、再構築されたブロックのサンプル値を指定する配列 recSamples[ x ][ y ] であり、PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい場合、bIsEscapeSample は 1 に設定され、bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0の場合、量子化パラメータqPは、cIdxが0の場合、(8-238)式のように、qP = Max( 0, Qp′Y )で導出され、(8-242)式のように、「tmpVal」が「tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6」で導出され、recSamples[ x ][ y ]は、(8-243)式のように、recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal )で導出される。
オ 上記(1)シによると、「Qp′Y」は、ルーマ量子化パラメータを表す。
カ 上記(1)スによると、変換係数のためのスケーリングプロセスにおいて、量子化パラメータqPは、cIdxが0かつtransform_skip_flag[ xTbY ][ yTbY ] が 1の場合、(8-906)式のように、qP = Max( QpPrimeTsMin, Qp′Y )で導出される。
キ 上記ア、イ、エ、オから、引用文献4には、パレットモードの符号化復号化の具体化手法に関する周知技術として、次の周知技術が記載されているといえる。
「「new_palette_entries[ cIdx ][ i ]」によって示される情報は、ビットストリームからパーシングすることによって得られる色成分cIdxに対する現在のパレットのi番目の要素を指定する情報であり、
「palette_escape_val」は、ビットストリームからパーシングすることによって得られるエスケープ値に関する情報であるコンポーネントの量子化エスケープ符号化サンプル値を指定する情報であって、「PaletteEscapeVal[ cIdx ][ xC ][ yC ]」に「palette_escape_val」で示す情報を格納し、
パレットモードのための復号化プロセスの出力は、再構築されたブロックのサンプル値を指定する配列 recSamples[ x ][ y ] であり、PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい場合、bIsEscapeSample は 1 に設定され、bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0の場合、量子化パラメータqPは、cIdxが0の場合、qP = Max( 0, Qp′Y )で導出され、「tmpVal」が「tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6」で導出され、recSamples[ x ][ y ]は、recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal )で導出され、
「Qp′Y」は、ルーマ量子化パラメータを表す技術。」(以下、「周知技術1」という。)
ク 上記ウ、カから、引用文献4には、変換スキップモードの量子化パラメータに関する周知技術として、次の周知技術が記載されているといえる。
「「QpPrimeTsMin」は、変換スキップモードにおける最小許容量子化パラメータであり、
変換係数のためのスケーリングプロセスにおいて、量子化パラメータqPは、cIdxが0かつtransform_skip_flag[ xTbY ][ yTbY ] が 1の場合、qP = Max( QpPrimeTsMin, Qp′Y )で導出される技術。」(以下、「周知技術2」という。)
第5 対比・判断
1 対比
本願発明と引用発明を、以下で対比する。
(1) 構成Aについて
構成aにおける「ビデオコーディングおよび圧縮のための技法、特に、ビデオデータのパレットベースコーディングのための技法」は、「ビデオデータ」を「パレットベースコーディング」で「コーディングおよび圧縮」する処理を行う方法といえるから、構成Aにおける「ビデオ・データを処理する方法」に相当するといえる。
(2) 構成Bについて
ア 構成tによると「ビデオエンコーダ20では、ビデオデータメモリ101から出力されたビデオデータを予測処理ユニット100に入力し、ビデオデータメモリ101から出力されたビデオデータと予測処理ユニット100の出力とを残差生成ユニット102に入力し、残差生成ユニット102の出力を変換処理ユニット104に出力し、変換処理ユニット104の出力を量子化ユニット106に出力し、量子化ユニット106の出力をエントロピー符号化ユニット118に出力し、エントロピー符号化ユニット118からビットストリームを出力し、予測処理ユニット100は、パレットベース符号化ユニット122を含」む。
また、構成wによると「ビデオデコーダ30では、符号化ビットストリームをビデオデータメモリ151に入力し、ビデオデータメモリ151の出力をエントロピー復号ユニット150に入力し、エントロピー復号ユニット150の出力を予測処理ユニット152と逆量子化ユニット154とに出力し、逆量子化ユニット154の出力を逆変換処理ユニット156に出力し、予測処理ユニット152の出力と逆変換処理ユニット156の出力とを再構成ユニット158に出力し、再構成ユニット158の出力をフィルタユニット160と復号ピクチャバッファ162とを介して復号ビデオとして出力し、予測処理ユニット152は、パレットベース復号ユニット165を含」む。
以上より、ビデオエンコーダ20では、予測処理ユニット100に含まれるパレットベース符号化ユニット122を介することにより、ビデオデータをビットストリームに変換し、ビデオデコーダ30では、予測処理ユニット152に含まれるパレットベース復号ユニット165を介することにより、符号化ビットストリームを復号ビデオに変換する構成があるといえる。
そうすると、引用発明には、構成Bにおける「ビデオ」と「該ビデオのビットストリームとの間の変換」に相当する構成があるといえる。
イ 構成fによると「パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得」る。
また、構成gによると「ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、「パレット」をコーディングし得」る。
そして、構成hによると「ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについての(パレットインデックス値とも呼ばれる)パレットインデックスを用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得」る。
さらに、構成iによると「ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのパレットインデックスを取得し得」る。
加えて、構成qによると「ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングを実行するように構成され得、パレットベースコーディングでは、イントラ予測またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ20およびビデオデコーダ30は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得、ブロック中の各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得」る。
その上、構成sによると「ビデオエンコーダ20は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得」る。
並びに、構成vによると「ビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的に復号するように構成され得」る。
以上より、パレットコーディングでは、符号化、復号化の処理は、ビデオの「ブロック」に対して行われるといえる。
そうすると、上記アのビデオエンコーダ20におけるビットストリームに変換される対象であるビデオデータとビデオデコーダ30における符号化ビットストリームから変換された復号ビデオとは、ともに構成Bにおける「ビデオの現在のビデオ・ブロック」に相当するといえるから、上記アの「ビデオ」と「該ビデオのビットストリームとの間の変換」は、構成Bのように「ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間」で行われるといえる。
ウ 構成bによると「ビデオ圧縮技法」は、「空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測」を実行し、構成cによると「パレットモードは、ピクチャ中のピクセルをコーディングするための別の技法であ」るから、「ビデオ圧縮技法」には、「空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測」と別に「ピクチャ中のピクセルをコーディングするための」「パレットモード」があるといえる。
エ 構成dによると「パレットベースコーディング技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得」る。
また、構成eによると「パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得」る。
そして、構成pによると「ビデオエンコーダ20およびビデオデコーダ30は、HEVCに記載されているHEVC規格など、ビデオ圧縮規格に従って動作し、パレットベースコーディングモードが、HEVC規格の拡張のために与えられ得」る。
以上より、「パレットベースコーディング技法」は、1つまたは複数のビデオコーディング規格として、HEVC規格とともに使用し、HEVCのフレームワーク中で、HEVC規格の拡張のために、PUモードとして使用されるといえる。ここで、PUモードは、構成pに「予測ユニット(PU)」とあるように、予測ユニットにおけるモードである。
そうすると、上記「パレットベースコーディング技法」が使用される上記「パレットベースコーディングモード」は、予測モードの一種であるといえるから、構成Bにおける「ある予測モード」に相当する。
オ 構成sによると「ビデオエンコーダ20は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得」る。
また、構成vによると「ビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるPUなど、ビデオデータの様々なブロックを選択的に復号するように構成され得」る。
そして、構成xによると「パレットベース復号ユニット165は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、パレットベース復号モードが、PUのために選択されるとき、パレットベース復号を実行し得、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成ように構成され得る動作を実行し、パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット152は、HEVCインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号」する。
以上より、ビデオエンコーダ、ビデオデコーダは、パレットベースコーディングまたは非パレットベースコーディング(HEVCインター予測またはイントラ予測コーディングモード)のうち、パレットモードコーディングを選択し、それぞれビデオデータの符号化、復号化に適用する場合があるといえる。
カ HEVC規格などのビデオ圧縮規格において、予測モードなどのコーディングモードの選択は、何らかの条件や指示によって決定されることが技術常識であるから、上記ウの「空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測」と別の「パレットモード」が、上記エの「パレットベースコーディング技法」によって、HEVC規格とともに、HEVCのフレームワーク中で、HEVC規格の拡張のために、ある予測モードとして予測ユニットにおけるモードとして使用され、上記オのパレットベースコーディングまたは非パレットベースコーディング(HEVCインター予測またはイントラ予測コーディングモード)のうち、パレットモードコーディングが選択されることにおいて、上記何らかの条件や指示によって上記選択が決定されることは、通常行われることであるといえる。
そして、当該通常行われる何らかの条件や指示によってパレットベースコーディングまたは非パレットベースコーディングのうち、パレットモードコーディングの選択が決定されることは、上記エのように「パレットベースコーディングモード」が、予測モードの一種であって、構成Bにおける「ある予測モード」に相当することから、構成Bの「現在のビデオ」に「ある予測モードが適用されることを決定する」ことに相当するといえる。
ここで、パレットベースコーディングの選択は、パレットベースコーディングモードの選択と同一の技術事項を表現していることは明らかである。
なお、ビデオデコーダに関しては、構成v、xによると、パレットベース復号ユニット165が、パレットコーディングモードを使用するか、非パレットベースコーディングモードを使用するかの選択を、受信したパレットコーディングモード情報に応じて決定しており、これにより構成Bの「現在のビデオ」に「ある予測モードが適用されることを決定する」ことに相当する構成を備えるともいえる。
キ 上記カのように「現在のビデオ」に「ある予測モードが適用されることを決定する」と、当該予測モードに基づいて、上記イの「ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換」が行われるから、上記「現在のビデオ」に「ある予測モードが適用されることを決定する」ことは、上記「ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換」のために行われるともいえる。
そうすると、引用発明には、構成Bにおける「ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換のために、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階」に相当する構成があるといえる。
(3) 構成B1について
ア 構成jによると、「パレットは、前にコーディングされたブロックからの情報を使用して構成され得、前の(1つまたは複数の)ブロックをコーディングするために使用された(1つまたは複数の)パレットから予測される、予測されたパレットエントリを含み、たとえば予測子パレットからコピーされたエントリを含み、予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成されたサンプルからのパレットエントリを含み得」る。
また、構成aaによると「ビデオエンコーダ20およびビデオデコーダ30は、パレット予測を実行するとき、(パレット予測子テーブルと呼ばれることもある)パレット予測子リストを決定し得、パレット予測子リストは、現在ブロックをコーディングするためのパレットの1つまたは複数のエントリを予測するために使用される1つまたは複数の隣接ブロックのパレットからのエントリを含み得」る。
そうすると、現在ブロックをコーディングするためのパレットは、前にコーディングされた隣接ブロックをコーディングするために使用されたパレットから予測されたパレットエントリであって予測子パレットからコピーされたエントリを含む、パレット予測子リストであるといえる。
ここで、予測子パレットは、「パレットモードを使用して前にコーディングされたブロック」の「再構成されたサンプルからのパレットエントリ」を含むものである。
イ 構成zによると「第1のパレット184の各々は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ202~206を含み、エントリ202~206は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Cを含むピクセル値に、インデックス値を関係付け、第1のCU180の実際のピクセル値をコーディングするのではなく、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、インデックス1~3を使用してブロックのピクセルをコーディングするためにパレットベースコーディングを使用し得、第1のCU180の各ピクセル位置について、ビデオエンコーダ20はピクセルについてのインデックス値を符号化し得、インデックス値は、第1のパレット184のうちの1つまたは複数の中のピクセル値に関連付けられ」る。
また、構成zによると「ビデオデコーダ30は、ビットストリームからインデックス値を取得し、インデックス値と第1のパレット184のうちの1つまたは複数とを使用してピクセル値を再構成し得」る。
そして、構成acによると「サンプルが4以外のインデックスを有する場合、ビデオデコーダ30は、復号されたインデックスに基づいてパレット244から適切なサンプル値を決定し得」る。
そうすると、ビデオデコーダ30は、ビットストリームから取得して復号したインデックス値を、第1のパレット184やパレット244の中のピクセル値に関連付けて、ピクセル値を再構成し、サンプル値を決定するといえる。
ウ 上記アのように、現在ブロックをコーディングするためのパレットには、前にコーディングされた隣接ブロックをコーディングするために使用されたパレットから予測されたパレットエントリであって予測子パレットからコピーされたエントリが含まれる。
また、上記イのように、エントリには、エントリインデックス値とピクセル値が含まれる。
そして、上記イのように、ビデオデコーダ30は、ビットストリームから取得して復号したインデックス値を、第1のパレット184やパレット244の中のピクセル値に関連付けて、ピクセル値を再構成し、サンプル値を決定する。
そうすると、上記「ビットストリームから取得して復号したインデックス値」を上記「予測子パレットからコピーされたエントリ」における「エントリインデックス値」と対応付け、当該対応付けられた「エントリインデックス値」に関係付けられた「ピクセル値」によって、ピクセル値を再構成して、サンプル値を決定するから、上記「予測子パレットからコピーされたエントリ」は、構成B1の「パレット予測子」に相当し、ビデオデコーダ30は、当該「パレット予測子」と復号されたインデックス値に基づいてピクセル値を再構成してサンプル値を決定する。
以上より、引用発明には、構成B1の「再構成されたサンプルはパレット予測子」「によって表現される」ことに相当する構成があるといえる。
エ 構成abによると「エスケープサンプルをシグナリングまたはコーディングするために、ビデオエンコーダ20およびビデオデコーダ30は、パレット244に追加のインデックスを追加し得(エントリインデックス4)、ビデオエンコーダ20およびビデオデコーダ30は、サンプルがエスケープサンプルとしてコーディングされることを示すために、パレット244への追加のインデックス4を使用し得、ビデオエンコーダ20およびビデオデコーダ30は、追加のインデックスに関連付けられた各サンプルのための色値をコーディング」する。
また、構成acによると「ビデオデコーダ30は、サンプルのためのパレットインデックスを復号し得、サンプルが4のインデックス(たとえば、エスケープサンプルに関連付けられたインデックス)を有する場合、ビデオデコーダ30は、サンプルがエスケープコード化サンプルであると決定し得、サンプルのためのサンプル値を復号」する。
そうすると、ビデオエンコーダでは、サンプルは、エスケープサンプルとしてコーディングされる場合、パレット244への追加のインデックス4を使用して示され、追加のインデックスに関連付けられた各サンプルのための色値をコーディングし、ビデオデコーダでは、サンプルのためのパレットインデックスを復号し、サンプルが、たとえば、エスケープサンプルに関連付けられた4のインデックスを有する場合、サンプルがエスケープコード化サンプルであると決定し、サンプルのためのサンプル値を復号するから、引用発明には、構成B1の「再構成されたサンプルは」「エスケープされたサンプル」「によって表現される」ことに相当する構成があるといえる。
オ 構成acによると「サンプルが4のインデックス」「を有する場合、ビデオデコーダ30は、サンプルがエスケープコード化サンプルであると決定し得、サンプルのためのサンプル値を復号し、サンプルが4以外のインデックスを有する場合、ビデオデコーダ30は、復号されたインデックスに基づいてパレット244から適切なサンプル値を決定し得」るから、サンプルが4のインデックスを有する場合と4以外のインデックスを有する場合があり、上記エ及びウによると、サンプルが4のインデックスを有する場合には、再構成されたサンプルはエスケープされたサンプルによって表現され、4以外のインデックスを有する場合には、再構成されたサンプルはパレット予測子によって表現される。
そうすると、再構成されたサンプルは、パレット予測子とエスケープされたサンプルとのうちの少なくとも1つによって表現されるといえ、上記アの「パレットモード」は上記(2)カの「ある予測モード」と同一のモードを表現し、上記イの「パレットベースコーディング」は、当該「ある予測モード」におけるコーディングを表現することは明らかであるから、引用発明には、構成B1の「前記予測モードでは、再構成されたサンプルはパレット予測子、エスケープされたサンプル」「のうちの少なくとも1つによって表現される」ことに相当する構成があるといえる。
カ しかしながら、本願発明では、前記予測モードで、再構成されたサンプルが表現されるために使用されるものの1つとして「前記ビットストリームに含まれるパレット情報」があるのに対し、引用発明では、そのような情報があるのか否か明確でない点で両発明は相違する。
(4) 構成Cについて
構成uによると「パレットベース符号化ユニット122」は、「パレットベース符号化を実行し」、構成xによると「パレットベース復号ユニット165」は、「パレットベース復号を実行」する。
また、上記(2)アのように、ビデオエンコーダ20では、予測処理ユニット100に含まれるパレットベース符号化ユニット122を介することにより、ビデオデータをビットストリームに変換し、ビデオデコーダ30では、予測処理ユニット152に含まれるパレットベース復号ユニット165を介することにより、符号化ビットストリームを復号ビデオに変換する。
そうすると、上記(2)カのように、ある予測モードとしてパレットモードコーディングが適用されることを決定した場合、「パレットベース符号化ユニット122」は、「パレットベース符号化を実行」してビデオデータをビットストリームに変換し、「パレットベース復号ユニット165」は、「パレットベース復号を実行」して符号化ビットストリームを復号ビデオに変換することになるから、引用発明には、構成Cの「少なくとも前記予測モードに基づいて前記変換を実行する段階」に相当する構成があるといえる。
(5) 構成Dについて
構成kによると「パレットベースコーディングモードを用いてコーディングされたブロック中の各サンプル」は、「エスケープモード、コピートップモード、及びインデックスモードの3つのパレットモードのうちの1つを使用してコーディングされ得」、その3つのパレットモードのうちの1つは、構成lの「エスケープモード」であって、「サンプル値がパレットエントリとしてパレットに含まれないことがあり、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされ」る。
また、構成mによると「エスケープサンプルは、ブロックをコーディングするためのパレット中で表される対応する色を有しないブロックのサンプルであり得、エスケープサンプルのための色値が、パレットの色値とは別にビットストリーム中でシグナリングされ」る。
そして、上記(3)エのように、引用発明には、構成B1の「再構成されたサンプルは」「エスケープされたサンプル」「によって表現される」ことに相当する構成がある。
そうすると、「パレットベースコーディングモードを用いてコーディングされたブロック中の各サンプル」は、3つのパレットモードのうちのどれか1つのモードによってコーディングすることが可能であり、そのコーディングされた各サンプルの中には、3つのパレットモードのうちの1つである「エスケープモード」を使用してコーディングするサンプルも含み得るから、当該「エスケープモード」を使用してコーディングするサンプルを再構成する場合であって、上記「再構成されたサンプルは」「エスケープされたサンプル」「によって表現される」場合が、構成Dの「前記再構成されたサンプルのうちの少なくとも1つが前記エスケープされたサンプルによって表現される場合」に相当する。
(6) 構成D1について
構成lによると「エスケープモード」において、「サンプル値がパレットエントリとしてパレットに含まれないことがあり、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされ」る。
また、構成nによると「ビデオコーダは、追加のサンプルがエスケープサンプルとしてコーディングされることを示すために、追加のインデックスを表すデータをコーディングし得、エスケープサンプルの(1つまたは複数の)色値をコーディングし得」る。
そして、構成oによると「色成分サンプルは、パレットモードの一部としてコーディングされるべき元のピクセルを表し、シグナリングされる値は量子化され得、パレットエスケープ値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表すpalette_escape_valによって表され得、この値は、エスケープピクセルを再構成するために逆量子化され得」る。
さらに、構成yによると「値を量子化ステップサイズ(qStep)で除算し、次いで結果を丸めることによって、エスケープ値など、値を量子化し得」、「そのような値にqStep値を乗算することによって、値を逆量子化し得」る。
以上より、「エスケープモード」を使用してコーディングする場合、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされ、エスケープサンプルの(1つまたは複数の)色値をコーディングし、その際、シグナリングされるエスケープ値は、量子化ステップサイズ(qStep)で除算し、次いで結果を丸めることによって、量子化され、この値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表す「palette_escape_val」によって表される。
そうすると、当該「palette_escape_val」が、「ビットストリーム中でシグナリングされ」、当該「palette_escape_val」は、構成D1の「前記エスケープされたサンプルの量子化された値を指定する第1の構文要素」に相当し、「ビットストリーム中でシグナリングされ」ることが、構成D1の「前記ビットストリームに含まれ」ることに相当するから、引用発明には、構成D1の「前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ」ることに相当する構成があるといえる。
(7) 構成D11について
構成afにおける「2値化は、k次指数ゴロム(EGk:k-th order Exponential-Golomb)2値化プロセスを呼び出すことによって導出され」ることは、構成D11における「バイナリ化は、次数Kの指数ゴロム(EG)符号を使用」することに相当する。
また、構成afにおける「palette_escape_val」は、上記(6)のように構成D1における「第1の構文要素」に相当するから、構成D11における「前記第1の構文要素」にも相当する。
そうすると、構成afにおける「palette_escape_valの2値化は、k次指数ゴロム(EGk:k-th order Exponential-Golomb)2値化プロセスを呼び出すことによって導出され」ることは、構成D11における「前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用」することに相当する。
(8) 構成D111について
構成afにおいて「一例では、kは3に等しく設定され、代替例では、kは、任意の値、たとえば、0、1、2、3、4、5、6などに設定され得る」から、代替例では、kの任意の値として1、2、4、5、6のいずれかの値を設定することが可能であり、このような値を設定する場合は、構成D111の「Kは、3と等しくない負でない整数であ」ることに相当する。
(9) 構成D2~D21132について
構成adに「エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_val」とあるように、「palette_escape_val」は、「エスケープピクセルサンプル値の量子化表現」である。
また、構成oによると「パレットエスケープ値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表すpalette_escape_valによって表され、この値は、エスケープピクセルを再構成するために逆量子化され」る。
そうすると、引用発明と本願発明とは、構成D2の一部である「前記エスケープされたサンプルは、前記エスケープされたサンプルの前記量子化された値に基づいて再構成されて、再構成されたエスケープ・サンプルを生成する」点で共通する。
そして、構成rによると「ビデオエンコーダ20およびビデオデコーダ30は、シグナリングされるビットストリームエスケープピクセル値のための規範制限(normative restriction)を導入し得、ビデオデコーダ30は、ビットストリームからのエスケープ値をパースし、最大ビット深度に基づいてエスケープ値を復号し得、ビデオエンコーダ20およびビデオデコーダ30は、量子化信号エスケープ値、再構成されたエスケープ値のための規範制限を導入し得」る。
さらに、構成adによると「色成分の最大可能値は、(1<<bitDepth)-1として計算され得、再構成されたエスケープコード化サンプル色成分値は、両端値を含む、0から(1<<bitDepth)-1の間にわたり、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valは、入力または再構成されたピクセル値と同じレンジ内にあるように制限され得、bitDepthは色成分入力ビット深度、出力ビット深度、または処理のために使用される内部ビット深度であり得」る。
そうすると、再構成されたエスケープ値(エスケープコード化サンプル色成分値)は、色成分入力ビット深度、出力ビット深度、または処理のために使用される内部ビット深度であるbitDepthに基づき、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valを入力または再構成されたピクセル値と同じレンジ内にあるように制限することによって、両端値を含む、0から(1<<bitDepth)-1の間に規範制限されるといえる。
しかしながら、本願発明では、前記エスケープされたサンプルは、構成D2のように「クリップ関数」にも基づいて再構成され、当該再構成の具体的な手法として、構成D21~D21132のように「前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、qPは量子化パラメータを指定し、mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され、前記qPは、Max(QpPrimeTsMin,Qp'Y)に基づいて決定され、QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表し、Qp'Yは、ルーマ量子化パラメータを表す」のに対し、引用発明では、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valを入力または再構成されたピクセル値と同じレンジ内にあるように制限するものの、前記エスケープされたサンプルは、「クリップ関数」にも基づいて再構成するか否か明確でなく、当該再構成の具体的な手法についても明確でない点で両発明は相違する。
2 一致点及び相違点
以上のことから、本願発明と引用発明との一致点及び相違点は、次のとおりである。
<一致点>
「A ビデオ・データを処理する方法であって:
B ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換のために、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、
B1’ 前記予測モードでは、再構成されたサンプルはパレット予測子、エスケープされたサンプルのうちの少なくとも1つによって表現される、
B 段階と;
C 少なくとも前記予測モードに基づいて前記変換を実行する段階と
A を含み、
D 前記再構成されたサンプルのうちの少なくとも1つが前記エスケープされたサンプルによって表現される場合、
D1 前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、
D11 前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、
D111 Kは、3と等しくない負でない整数であり、
D2’ 前記エスケープされたサンプルは、前記エスケープされたサンプルの前記量子化された値に基づいて再構成されて、再構成されたエスケープ・サンプルを生成する
A 方法。」
<相違点1>
本願発明では、前記予測モードで、再構成されたサンプルが表現されるために使用されるものの1つとして「前記ビットストリームに含まれるパレット情報」があるのに対し、引用発明では、そのような情報があるのか否か明確でない点。
<相違点2>
本願発明では、前記エスケープされたサンプルは、「クリップ関数」にも基づいて再構成され、当該再構成の具体的な手法として、「前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、qPは量子化パラメータを指定し、mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され、前記qPは、Max(QpPrimeTsMin, Qp′Y)に基づいて決定され、QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表し、Qp′Yは、ルーマ量子化パラメータを表す」のに対し、引用発明では、前記エスケープされたサンプルは、「クリップ関数」にも基づいて再構成されるか否か明確でなく、当該再構成の具体的な手法についても明確でない点。
3 相違点についての判断
上記相違点について以下で検討する。
(1) 相違点1について
周知技術1において、「new_palette_entries[ cIdx ][ i ]」によって示される情報は、ビットストリームからパーシングすることによって得られる色成分cIdxに対する現在のパレットのi番目の要素を指定する情報であるから、当該情報を用いて、再構成されたサンプルを表現することができることは明らかである。
また、令和7年8月6日付け意見書によると、請求人は、「再構成されたサンプルはパレット予測子、エスケープされたサンプル、または前記ビットストリームに含まれるパレット情報のうちの少なくとも1つによって表現される」という補正の根拠は、段落0069のnew_palette_entries[cIdx][i]及び段落0074の「new_palette_entries[cIdx][i]は、色成分cIdxについてのi番目の信号伝達されるパレット項目についての値を指定する。」
for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++) (7-156)
for( i = 0; i < num_signalled_palette_entries[startComp]; i++ )
CurrentPaletteEntries[ cIdx ][ numPredictedPaletteEntries + i ] = new_palette_entries[ cIdx ][ i ]
であると主張しており、当該主張における補正の根拠の段落0069の記載と段落0074の記載とは、それぞれ上記周知技術1の根拠である上記第4 3(1)アの記載と上記第4 3(1)カの記載と同一である。
そうすると、上記周知技術1における「new_palette_entries[ cIdx ][ i ]」は、構成B1における「再構成されたサンプル」を「表現する」ために使用されるものとしての「前記ビットストリームに含まれるパレット情報」に相当するといえる。
そして、周知技術1は、上記第4 3(1)のようにパレットモードの符号化復号化の具体化手法の技術であるから、引用発明におけるビデオデータのパレットベースコーディングのための技法において、周知技術1を適用することは、当業者が適宜なし得ることと認められる。
してみると、引用発明において、前記予測モードで、再構成されたサンプルを表現されるために使用されるものの1つとして、周知技術1における「new_palette_entries[ cIdx ][ i ]」を適用することにより、「前記ビットストリームに含まれるパレット情報」も使用する構成とすることは、当業者が容易になし得ることと認められる。
(2) 相違点2について
ア 周知技術1は「「palette_escape_val」は、ビットストリームからパーシングすることによって得られるエスケープ値に関する情報であるコンポーネントの量子化エスケープ符号化サンプル値を指定する情報であって、「PaletteEscapeVal[ cIdx ][ xC ][ yC ]」に「palette_escape_val」で示す情報を格納し、
パレットモードのための復号化プロセスの出力は、再構築されたブロックのサンプル値を指定する配列 recSamples[ x ][ y ] であり、PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい場合、bIsEscapeSample は 1 に設定され、bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0の場合、量子化パラメータqPは、cIdxが0の場合、qP = Max( 0, Qp′Y )で導出され、「tmpVal」が「tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6」で導出され、recSamples[ x ][ y ]は、recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal )で導出され、
「Qp′Y」は、ルーマ量子化パラメータを表」すことを含む技術である。
イ 周知技術1では、「「palette_escape_val」は、ビットストリームからパーシングすることによって得られるエスケープ値に関する情報であるコンポーネントの量子化エスケープ符号化サンプル値を指定する情報であって、「PaletteEscapeVal[ cIdx ][ xC ][ yC ]」に当該「palette_escape_val」で示す情報を格納するから、上記「「PaletteEscapeVal[ cIdx ][ xC ][ yC ]」に格納する情報は、本願発明の構成D2の「前記エスケープされたサンプルの前記量子化された値」に相当するといえる。
ウ 「cIdx」の値は、処理する信号がどの色成分であるかを示し、その値が0の場合ルーマ成分を示すことが技術常識であるから、周知技術1において「cIdxが0の場合」とは、処理する信号がルーマ成分の場合であり、周知技術1での処理する信号は、ルーマ成分である。
エ 周知技術1において「qP」が「量子化パラメータ」であることは、本願発明のD2111における「qPは量子化パラメータを指定」することに相当する。
オ 周知技術1において「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく」という技術事項は、以下のように理解される。
(ア) 「PaletteIndexMap[ xCb + xL ][ yCb + yL ]」について
a 上記第4 3(1)ケのセマンティクスによると、「変数 PaletteIndexMap[ xC ][ yC ] は、CurrentPaletteEntries で表される配列へのインデックスであるパレットインデックスを指定」するものであり、「配列インデックス xC, yC は、画像の左上輝度サンプルを基準としたサンプルの位置 ( xC, yC ) を指定する」ものである。
また、上記第4 3(2)ア(ウ)のように、上記「CurrentPaletteEntries」で表される配列は、現在のパレットの要素を指定する配列である。
b 上記第4 3(1)サの「パレットモードのための復号化プロセス」によると、(xCb, yCb)は、現在のブロックの左上輝度サンプルを、現在の画面の左上輝度サンプルを基準に指定する位置である。
c 上記第4 3(1)サの「パレットモードのための復号化プロセス」によると、
「xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)」
「yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)」
である。
ここで、上記第4 3(1)クのセマンティクスによると、「palette_transpose_flag が 1 の場合、現在のコーディングユニットにおける画素のインデックス走査に垂直走査が適用されることを指定」し、「palette_transpose_flag が 0 の場合、現在のコーディングユニットにおける画素のインデックス走査に水平走査が適用されることを指定する。」
また、上記第4 3(1)サの「パレットモードのための復号化プロセス」によると、「cIdxが0の場合、nSubWidthは1に、nSubHeightは1に設定される。」
そして、上記ア及びウのように、周知技術1は、「cIdxが0」の場合の技術であるから、nSubWidthは1に、nSubHeightは1に設定される。
そうすると、上記(8-234)式及び(8-235)式は、それぞれ「xL = x」及び「yL = y」となる。
d 上記第4 3(1)サの「パレットモードのための復号化プロセス」によると、「nCbW および nCbH」は、「現在のブロックの幅と高さをそれぞれ指定する変数」である。
また、上記第4 3(1)サの「パレットモードのための復号化プロセス」によると、「( nCbW × nCbH ) ブロック」内の各サンプルの位置を示す(x, y)の取り得る範囲は、「x = 0.. nCTbW - 1、y = 0..nCbH - 1」 である。
e 上記a~dを総合すると、周知技術1における「PaletteIndexMap[ xCb + xL ][ yCb + yL ]」に格納される値は、「現在のパレットの要素を指定する配列へのインデックスであるパレットインデックスを指定」する値であり、「配列インデックスxCb + xL,yCb + yL」は、「現在のブロックの左上輝度サンプルを、現在の画面の左上輝度サンプルを基準に指定する位置」である(xCb,yCb)位置における( 幅nCbW × 高さnCbH ) ブロック内の各サンプルの位置を指定する値である。
そうすると、上記「PaletteIndexMap[ xCb + xL ][ yCb + yL ]」に格納される値は、「現在のブロックの左上輝度サンプルを、現在の画面の左上輝度サンプルを基準に指定する位置」である(xCb,yCb)位置における( 幅nCbW × 高さnCbH ) ブロック内の各サンプルの位置における「現在のパレットの要素を指定する配列へのインデックスであるパレットインデックスを指定」する値といえる。
(イ) 「MaxPaletteIndex」について
a 上記第4 3(1)キのセマンティクスによると、「変数 MaxPaletteIndex は、現在のコーディングユニットにおけるパレットインデックスの最大可能値を指定」し、「MaxPaletteIndex の値は、CurrentPaletteSize[ startComp ] + palette_escape_val_present_flag に等しく設定される。」
b 上記第4 3(1)ウによると、「配列インデックス startComp は、現在のパレットテーブルの最初の色成分を指定」し、「startComp が 0 の場合は Y 成分、startComp が 1 の場合は Cb 成分、startComp が 2 の場合は Cr 成分を示す。」
c 上記第4 3(1)オによると、「変数 CurrentPaletteSize[ startComp ] は、現在のパレットテーブル startComp の最初の色成分に対する現在のパレットのサイズを指定し、以下のように導出される:
CurrentPaletteSize[ startComp ] = NumPredictedPaletteEntries + num_signalled_palette_entries (7-169)」
d 上記第4 3(1)エよると、「変数 NumPredictedPaletteEntries は、現在のパレット内で予測子パレットから再利用されるエントリ数を指定する。」
e 上記第4 3(1)アのパレットコーディングシンタックスにおける記載によると、「num_signalled_palette_entries」は、「/* Parsing number of new palette entries */」として記載される構文要素であるから、「num_signalled_palette_entries」で示される値は、ビットストリームからパーシングすることによって得られる新しいパレットエントリの数を示す値であるといえる。
また、上記第4 3(1)オによると、「num_signalled_palette_entries は、現在のパレットテーブル startComp の最初の色成分に対して明示的に指定された、現在のパレット内のエントリ数を指定する。」
f 上記b~eを総合すると、上記cの(7-169)式のように、現在のパレットテーブル startComp の最初の色成分に対する現在のパレットのサイズを指定する「CurrentPaletteSize[ startComp ]」の値は、現在のパレット内で予測子パレットから再利用されるエントリ数「NumPredictedPaletteEntries」と現在のパレットテーブル startComp の最初の色成分に対してビットストリームからパーシングすることにより得られる新しいパレットエントリの数を示す値であって、明示的に指定された、現在のパレット内のエントリ数「num_signalled_palette_entries」とを加算した値となるから、当該加算した値は、現在のパレットのサイズを表す値であるといえる。
g 上記第4 3(1)キのセマンティクスによると、「palette_escape_val_present_flag が 1 の場合、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれていることを示」し、「escape_val_present_flag が 0 の場合、現在のコーディングユニットにエスケープ符号化サンプルが存在しないことを示す。」
h 上記a、f及びgを総合すると、上記aにおける「MaxPaletteIndex」の値は、上記fの現在のパレットのサイズを表す値である「CurrentPaletteSize[ startComp ]」に上記gの「palette_escape_val_present_flag」の値を加算した値であるから、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合と、存在しない場合とでは、値が異なり、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合には、MaxPaletteIndexの値は、現在のパレットのサイズを表す値よりも 1 だけ大きな値となる。
そうすると、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合、MaxPaletteIndexの値は、上記fの「予測子パレットから再利用されるエントリ数」と「ビットストリームからパーシングすることにより得られる新しいパレットエントリの数」を加算した値よりも大きいから、ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する場合には、パレットインデックスを指定する値は、現在のパレットのサイズの値よりも大きい上記MaxPaletteIndexの値と等しい値とする必要があるといえる。
なお、上記第4 3(1)コでは、「変数 PaletteEscapeVal[ cIdx ][ xC ][ yC ] は、PaletteIndexMap[ xC ][ yC ] が (MaxPaletteIndex - 1) に等しく、かつ palette_escape_val_present_flag が 1 に等しいサンプルのエスケープ値を指定する。」とされているが、上記「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する場合には、パレットインデックスを指定する値は、現在のパレットのサイズの値よりも大きい上記MaxPaletteIndexの値と等しい値とする必要がある」ことを考慮すると、上記「MaxPaletteIndex ー 1」は「MaxPaletteIndex」の誤記であると認められる。
(ウ) 「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく」について
上記(ア)eのように「PaletteIndexMap[ xCb + xL ][ yCb + yL ]」は、「現在のブロックの左上輝度サンプルを、現在の画面の左上輝度サンプルを基準に指定する位置」である(xCb,yCb)を位置の基準とする「(幅 nCbW × 高さnCbH ) ブロック」内の各サンプルの位置における「現在のパレットの要素を指定する配列へのインデックスであるパレットインデックスを指定」する値を格納する配列であり、当該配列に格納された各値は、上記ブロック内の各サンプルの位置におけるパレットインデックスを指定する値である。
また、上記(イ)hのように「MaxPaletteIndex」の値は、現在のパレットのサイズを表す値に「palette_escape_val_present_flag」の値を加算した値である。
そうすると、「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく」とは、上記ブロック内の各サンプルの位置におけるパレットインデックスを指定する値が、現在のパレットのサイズを表す値に「palette_escape_val_present_flag」の値を加算した値と等しいことと理解され、これは、上記(イ)hのように、パレットインデックスを指定する値が、現在のパレットのサイズの値よりも大きい上記MaxPaletteIndexの値と等しい値であることに相当するといえる。
カ 上記オ(イ)gのように、「palette_escape_val_present_flag が 1 の場合、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれていることを示す」ことから、周知技術1において「palette_escape_val_present_flag が 1 に等しい場合」とは、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれていることを示す場合である。
キ 周知技術1において、「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい」という条件が満たされた場合、「bIsEscapeSample は 1 に設定され」る。
ここで、上記オ(ウ)のように、「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく」とは、パレットインデックスを指定する値が、現在のパレットのサイズの値よりも大きいMaxPaletteIndexの値と等しい値であることに相当し、これによって、上記オ(イ)hのように「現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合」には、「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する」ことを示すものである。
また、上記カのように、「palette_escape_val_present_flag が 1 に等しい場合」とは、現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれていることを示す場合である。
そうすると、「bIsEscapeSample は 1 に設定され」るための上記条件は、「現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合」であって、「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する」場合という条件であるといえる。
ク bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0の場合、量子化パラメータqPは、cIdxが0の場合、qP = Max( 0, Qp′Y )で導出され」る技術事項は、以下のように理解される。
「bIsEscapeSample が 1 で cu_transquant_bypass_flag が 0の場合」とは、引用文献3技術事項によると、「cu_transquant_bypass_flagシンタックスで変換量子化バイパスモードのオン/オフを示」し、「変換量子化バイパスモードは、CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いないモード」であるから、上記キの「bIsEscapeSample は 1 に設定され」るための条件を考慮すると、「現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合」であって、「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する」場合であって、CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いない変換量子化バイパスモードモードを適用しない場合であるといえる。
また、上記ウのように「cIdxが0の場合」とは、処理する信号がルーマ成分の場合である。
そうすると、上記技術事項は、「現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合」であって、「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する」場合であって、CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いない変換量子化バイパスモードモードを適用しない場合、量子化パラメータqPは、処理する信号がルーマ成分の場合、qP = Max( 0, Qp′Y )で導出され」る技術事項であると理解される。
ケ 周知技術1における「recSamples[ x ][ y ]」は、「パレットモードのための復号化プロセスの出力」として「再構築されたブロックのサンプル値を指定する配列」であり、「PaletteIndexMap[ xCb + xL ][ yCb + yL ] が MaxPaletteIndex に等しく、かつpalette_escape_val_present_flag が 1 に等しい場合」であって、「cu_transquant_bypass_flag が 0の場合」の「cIdxが0の場合」に導出される配列である。
そして、上記オ(ウ)、カ及びクを考慮すると、上記配列「recSamples[ x ][ y ]」は、「現在のコーディングユニットに少なくとも 1 つのエスケープ符号化サンプルが含まれている場合」であって、「ブロックのサンプル値を再構築する際に、エスケープ符号化サンプルを使用する」場合であって、CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いない変換量子化バイパスモードモードを適用しない場合」で、「処理する信号がルーマ成分の場合」に導出される配列といえ、本願発明の構成D2における「エスケープされたサンプル」が「再構成されて、再構成されたエスケープ・サンプルを生成」したものに相当するといえる。
コ 周知技術1における「「tmpVal」が「tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6」で導出され」ることは、上記イの「PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ]」に、ビットストリームからパーシングすることによって得られるエスケープ値に関する情報であるコンポーネントの量子化エスケープ符号化サンプル値を指定する情報である「palette_escape_val」で示す情報を格納することが本願発明の構成D2の「前記エスケープされたサンプルの前記量子化された値」を格納することに相当することを考慮し、m = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] )とすると、本願発明の構成D211における「tmpValは、m<<(qP/6)+32)>>6に基づいて決定され」ること、構成D2112における「mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され」ることに相当するといえる。
サ 周知技術1における「recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal )」は、上記ケのように「recSamples[ x ][ y ]」は、本願発明の構成D2における「エスケープされたサンプル」が「再構成されて、再構成されたエスケープ・サンプルを生成」したものに相当すること、上記コのように「tmpVal」の導出が上記「m」のような「前記エスケープされたサンプルの前記量子化された値」に基づいて行われることを考慮し、「Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal )」がクリップ関数であることから、本願発明の構成D2における「前記エスケープされたサンプルは、クリップ関数と、前記エスケープされたサンプルの前記量子化された値とに基づいて再構成されて、再構成されたエスケープ・サンプルを生成」すること、構成D21における「前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され」ることに相当するといえる。
シ 周知技術1における「「Qp′Y」は、ルーマ量子化パラメータを表」すことは、本願発明の構成D21132における「Qp'Yは、ルーマ量子化パラメータを表す」ことに相当する。
ス 上記アからシを総合すると、本願発明と周知技術1とは、前記エスケープされたサンプルは、クリップ関数と、前記エスケープされたサンプルの前記量子化された値とに基づいて再構成されて、再構成されたエスケープ・サンプルを生成し、前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、qPは量子化パラメータを指定し、mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され、Qp'Yは、ルーマ量子化パラメータを表す点で一致する。
しかしながら、量子化パラメータqPに関し、本願発明の構成D2113では「前記qPは、Max(QpPrimeTsMin,Qp'Y)に基づいて決定され」、当該Max関数内の固定値「QpPrimeTsMin」について、構成D21131において「QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表」すと定義しているのに対し、周知技術1では「量子化パラメータqPはqP = Max( 0, Qp′Y )で導出され」、当該Max関数内に固定値「QpPrimeTsMin」がないことから、「QpPrimeTsMin」についての定義もない点で相違する。
セ 上記(1)で説示したように、周知技術1は、上記3(1)のようにパレットモードの符号化復号化の具体化手法の技術であるから、引用発明におけるビデオデータのパレットベースコーディングのための技法において、周知技術1を適用することは、当業者が適宜なし得ることと認められる。
ソ 引用発明の構成aeによる、周知技術2を考慮した周知技術1の適用についての検討
(ア) 引用発明の構成aeによると「エスケープサンプルに適用されるものと同様の量子化プロセスが、変換係数のために使用され、シンタックス要素palette_escape_valは、変換係数として扱われ、変換係数に課される制限は、このシンタックス要素のシグナリングされる値を限定するために適用され、エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ」るとされている。
そうすると、引用発明では、「palette_escape_valは、変換係数として扱われ」、「エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ」るから、引用発明は、「palette_escape_val」に関して、変換係数コーディングの変換スキップ部分におけるコーディング手法を適用することができるといえる。
(イ) 「変換スキップ部分」とは、変換スキップモードが適用される部分であることが明らかであり、引用文献3技術事項によると、変換スキップモードとは、「直交変換をスキップし、直交変換係数用の量子化器をそのまま用いるモードで、transform_skip_flagシンタックスで変換スキップモードのオン/オフを示し、TUが変換量子化バイパスモードのCUに含まれる場合、TUのtransform_skip_flagは伝送されない」モードであるから、「変換スキップ部分」では、直交変換はスキップされるが、量子化はスキップされずに直交変換係数用の量子化器をそのまま用い、また、TUが変換量子化バイパスモードのCUに含まれない場合、TUのtransform_skip_flagを伝送することが可能であるといえる。
ここで、上記クの「CU(符号化ユニット)の予測誤差信号に対して、直交変換と量子化を用いない変換量子化バイパスモードを適用しない場合」は、上記「TUが変換量子化バイパスモードのCUに含まれない場合」となるから、引用文献3技術事項によると「TUのtransform_skip_flagを伝送することが可能」となる。
(ウ) 周知技術2によると「変換係数のためのスケーリングプロセスにおいて、量子化パラメータqPは、cIdxが0かつtransform_skip_flag[ xTbY ][ yTbY ] が 1の場合、qP = Max( QpPrimeTsMin, Qp′Y )で導出され」、上記ウによると上記「cIdxが0」とは、処理する信号がルーマ成分である場合であり、上記「transform_skip_flag[ xTbY ][ yTbY ] が 1の場合」は、上記(イ)のように、変換スキップが行われる場合であるから、周知技術2では、「変換係数のためのスケーリングプロセスにおいて、量子化パラメータqPは、処理する信号がルーマである場合でありかつtransform_skip_flag[ xTbY ][ yTbY ] が 1を示すことによって変換スキップが行われる場合、qP = Max( QpPrimeTsMin, Qp′Y )で導出される」といえる。
ここで、周知技術2における「QpPrimeTsMin」が、「変換スキップモードにおける最小許容量子化パラメータであ」ることは、本願発明の構成D21131の「QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表」すことに相当する。
(エ) 上記セのように引用発明におけるビデオデータのパレットベースコーディングのための技法において、周知技術1を適用すると、引用発明が上記(ア)のように、「palette_escape_val」が、「変換係数として扱われ」、「エスケープピクセルコーディング」が、「変換係数コーディングの変換スキップ部分に従」い、「palette_escape_val」に関して、「変換係数コーディングの変換スキップ部分におけるコーディング手法を適用する」発明であるから、上記(イ)のように「直交変換はスキップされるが、量子化はスキップされずに直交変換係数用の量子化器をそのまま用い」ることになり、量子化パラメータqPは、上記(ウ)のように「qP = Max( QpPrimeTsMin, Qp′Y )で導出される」ことになるといえる。
そうすると、引用発明に周知技術1を適用した場合、周知技術1の「量子化パラメータqPはqP = Max( 0, Qp′Y )で導出される」のではなく、上記(ウ)及び(エ)のように「量子化パラメータqP」は、「qP = Max( QpPrimeTsMin, Qp′Y )で導出される」ことになる。
すなわち、上記スの引用発明と周知技術1との対比により生ずる相違点は、引用発明の構成aeによって、周知技術2を考慮することにより、存在しないこととなる。
タ 上記ソの検討によると、引用発明において、周知技術2を考慮して周知技術1を適用して、「前記エスケープされたサンプルは、「クリップ関数」にも基づいて再構成され、当該再構成の具体的な手法として、「前記再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、qPは量子化パラメータを指定し、mは前記エスケープされたサンプルの前記量子化された値に基づいて決定され、前記qPは、Max(QpPrimeTsMin, Qp′Y)に基づいて決定され、QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表し、Qp′Yは、ルーマ量子化パラメータを表す」ようにすることは、当業者が容易になし得ることと認められる。
(3) 請求人の主張について
令和7年8月6日付けで提出された意見書において、請求人は、次の主張をしている。
「引用文献1の[0176]は、先行する実施形態(たとえば段落[0173]に記載される実施形態)とは別の実施形態を開示しています。[0173]の実施形態は「再構成されたエスケープコード化サンプル色成分値は、両端値を含む、0から(1<<bitDepth)-1の間にわたり得る。」と記載しています。[0176]の実施形態は、「シンタックス要素palette_escape_valは、変換係数として扱われ得」と記載しています。すなわち、引用文献1の[0176]は、シンタックス要素palette_escape_valが変換係数として扱われ、palette_escape_valが変換係数と同じ仕方で扱われることを記載しています。当業者には、palette_escape_valを変換係数の処理(たとえば引用文献4のセクション8.7.3の「Sealing process for transform coefficients」)と同じ仕方で処理することは、palette_escape_valを処理するための他の方法とは独立であることが明らかです。したがって、何らかの教示なくしては、palette_escape_valを変換係数の処理(たとえば引用文献4のセクション8.7.3のQpを決定するステップ)と同じ仕方で処理する方法に関わるステップは、シンタックス要素palette_escape_valが変換係数として扱われるのでない、シンタックス要素palette_escape_valの他の処理方法に適用されることはできません。」
しかしながら、引用文献1の[0176]には、「シンタックス要素palette_escape_valは、変換係数として扱われ得」という記載だけでなく、「エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ」と記載されている。
そして、変換係数コーディングの変換スキップ部分では、上記(2)ソ(イ)のように「直交変換はスキップされるが、量子化はスキップされずに直交変換係数用の量子化器をそのまま用い」ることから、上記[0176]の記載による実施形態は、[0176]に先行する実施形態において、エスケープピクセルコーディングを行って得たエスケープサンプル(palette_escape_val)に対して量子化する際に使用する量子化パラメータの値として、変換スキップモードにおいて使用する量子化パラメータと同じ量子化パラメータを使用する実施形態であることが明らかであるといえる。
してみると、上記請求人の意見書における主張を採用することはできない。
(4) 本願発明についてのまとめ
以上のことから、本願発明は、令和7年4月30日付け拒絶理由通知(当審)で通知したとおり、特許法第29条第2項の規定により特許を受けることができない。
第6 むすび
以上のとおり、本願発明は、特許法第29条第2項の規定により特許を受けることができないから、他の請求項に係る発明について検討するまでもなく、本願は拒絶されるべきものである。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2024-001855