スケーリング補正と解像度について
新規投稿者 きみたか  投稿日 3/4(日) 01:05:19  返信も含め全削除
きみたかと申します。

常々疑問であった事柄なのですが、HTPCを高画質で楽しんでおられる方は
多くの方が、高精細な1600×1200pixcelのような解像度にしているのを
見かけますし、その方がいいと言うことを推奨するような感じがとれます。

液晶やDLPプロジェクターでは画素数とパネル解像度を一致させた方が良い
のでスケーリング補正を働かせて鑑賞するというのは納得できるのですが、
解像度を自在にかえることができるモニターディスプレイや
3管プロジェクターなどではDVD本来の720×480pixcel以上の解像度に設定
するとどのようなメリットがあるのでしょうか?

たとえば、縦横とも1.5倍に拡大して1080×720pixcel(こういう設定ができる
グラフィックボードがあるかどうかは分かりませんが)なら、本来存在しない
画素を新たに生成してくれて高画質になることも考えられるかもしれませんが、
1600×1200にした場合、横2.22倍、縦2.5倍という中途半端な拡大率になるはず
で、実際は16:9の映画などを再生する場合には、上下は黒味で喰われてしまうので
縦は1.875倍ぐらいになるはずですが、より高画質になるとは思えないのですが、
実際に見てみるとこのような理屈ではなしに、高精細にするとよりきれいに
なるものなのでしょうか?

スケーリング補正をかける場合、CPUにとって大した負担にはならないと言う話も
聞いたことがあるのですが、その場合、実は大した処理をしてないのかもしれない
と言う気もします。

私の環境では720×480pixcelの画面解像度を選び、72fpsで、画面の縦横比を16:9
になるようにモニターの垂直をつぶしてフル画面表示させています。
(スクイーズ収録された16:9の映画の場合です)
この場合、DVDに記録されたデータは(画素数や縦横比は)全く補正されることなく
出力されていて一番劣化は少ないように感じているのですが、画面に力はあるのですが
ドットのツブツブ感(?)は細い線のようなものが映っているときには結構
気になります。テレビでは程良くぼけてくれて問題はないのでしょうが、
このときにはスケーリング補正をかけて高精細な解像度で見た方が影響が
少ないのでしょうか。縦横とも1.5倍とか2倍というキリがいい倍率なら問題は
ないとは思うのですが、1080×720pixcelや1440×960pixcelという数値は
PowerStripを使っても出力できるものを知らないもので。。

どうも中途半端なスケーリング補正はいい加減な画面しかでないのではないかという
偏見があるので、そんなことないという意見や、この方式について詳しい知識を
お持ちの方がいらっしゃいましたら、いろいろ教えていただけるとありがたく思います。

液晶プロジェクタの内蔵の画素数補正とは別の話題になると思われましたので、
「パネル解像度と出力解像度を一致させるべきかどうか」とは別の話題として
投稿させていただきました。

返信 1 POLARIS  投稿日 3/4(日) 12:56:53  削除
アップスケーリングには画質を向上させる面と劣化させる面の
両方があり得ると思います。これはスケーリングの質の問題で、
良質なスケーリングをかければ劣化は極小に抑えられます。
3管プロジェクターで480p以上の解像度にすることにメリットが
ないなら、ファロージャなどのスケーラーにハイエンドの人々が
大枚をはたくことはないでしょう。
最大の恩恵の一つは、単純に走査線が見えにくくなることでは
あると思いますが。

なぜ画質が上がるかは、「HTPC出力は9000ESを超えた?」
スレッドの返信4 の片岡さんのご投稿をご参照下さい。
http://homepage1.nifty.com/straylight/bbs/docs/20010219225943.html

またスケーリングはたいていビデオカードで行っているのでCPUに負荷は
あまりかかりません。だからカードによって、スケーリングの質は若干
異なります。

GeForceやG400/450なら1ピクセル単位のカスタム解像度が設定できると
思いますが、キリのよい倍率だと高画質だという話は個人的には聞きません。
詳しくないので断定はできませんが。
返信 2 HIDE  投稿日 3/4(日) 18:01:10  削除
 元々フレームで構成されているフィルムソースは、インターレース
からプログレッシブに正しく変換、表示されるだけで、人間の視覚上の
性質で失われていた垂直解像度が向上します。これ以外のことでは
ご指摘のようにアップコンバートは不可逆なロスを生むプロセス
です。画素の持つ情報は加工した分だけ失われます。

ただ、ディスプレイディバイスは固有の特性に縛られていて
いますから、入力される信号を得意な周波数領域に持ちこむ
ことで本来の実力を発揮でき、画質改善する場合があります。

特に3管やPCモニターのようにブラウン管を用いたものの場合
ビームの太さを自由にコントロールするのは困難で、実際昔は
ハイビジョン用の管がNTSCの地上波を苦手としていたこともありました。
現在のハイビジョン対応のワイドTVの多くがプログレッシブに
なった裏には実はこの辺の事情もあります。

もう一つの効果は、隣接画素との平滑化による効果です。
ノイズキャンセラーの技術の一つにメディアンフィルター
というものがあります。これは普通同じ画素数での画質改善に用いらます。
簡単にいうと、隣接した画素から新たな画素をつくる平滑化です。
信号はそのままで、ノイズだけが減少できます。欠点はその分
ボケることです。
HTPCでアップスケーリングした場合、僅かですが結果的に、この効果
が出ている様です。
ただ、私も最近気がついたのですが、比較的低い解像度での半端な比率の変換
で暗部のひどいノイズの場所が周期的にビート状に見えることがありました。
恐らく変換の周期性に起因する現象なので、より高い解像度にすること
で避けられると思われます。

あと、アップスケーリングの場合、元の8ビット情報を使って計算すると9ビ
ット以上になるので合成された下位ビットのデータは8ビットカードでは切り
捨て(または丸め込み)になります。
Radeonは10ビットですから、この損失が殆どでない事になります。
返信 3 片岡  投稿日 3/4(日) 19:23:39  削除
皆様

 ちょっとだけ体調がよくなり、気力が出てきました。
POLARISさんやHIDEさんには、お叱りを受けると思いますが、強引に
MPEG2圧縮の伸張に関して、本当に正しくはないのですが、こんなも
んだということを書きたいと思います。これは判りにくいので、
POLARISさんやHIDEさんから、追加説明が出ることを(勝手に)期待し
ています。先にあやまっちゃいます。御免なさい。あまりに違ってい
たら、それも直してください。再度、御免なさい。

 まず、コマごとの差分を取るということを頭から除いておきます。
1コマ、つまり1画面があります。これを、4分割します。
最初の4分割したものを左上から時計回りに1、2、3、4と番号を
振ります。そして、その4分割画面がみな同じRGB強度なら、その値を
1から4に与えて終わりです。もし、1の中に何か像がある場合、そ
れでは消えてしまいますから、1を4分割します。1の4分割した
部分をやはり、左上から時計回りに、1、2、3、4と番号をふります。
ここは、最初の1の領域内ですから、本当の番号は、1−1、1−2、
1−3、1−4となります。で、それぞれにRGB強度を与えます。
さらに、1−2と1−4を通る線があったとします。その部分だけ、
また4分割して、同様の手順で番号をふり(1−2−1、1−2−2とい
うように)、線が通っている部分だけ、どんどん細かくしていきます。
これを適当なところで止めます。そうすると、線のある部分だけ細かい
四角で表現されますよね。で、そこの部分だけ黒い線なら、RGB値が
0、0、0になるわけです。
 この情報を全部足せば、元の画像に近い情報が得られるわけです。
そして、何も無い部分は、大きな四角ですから、情報を圧縮できる
わけです。
 当然、こんな情報をそのまま復元したのでは、見られたものでは
ありません。ので、小さくとも四角の連続などから、線としたりする
補正をかけるわけです。
 というわけで、例え、もともとがn個×m個の升目であっても、
補正をかけるときに使う升目がもっと細かければ、元の升目の個数
よりよりスムーズに補正できるわけです。
 ですから、PC内部で画像を作る時、別に縦横の画素数を720X480
とかに合わせる必要はないと思います。むしろ、ある程度までは、
画素数を増やした方が、補正つまり補間ですが、それがよりスムー
ズになると思います。
 少なくとも、G90やF980では、横方向で言うと、より細かいところ
まで見える(勿論、擬似輪郭のような存在しない情報もできてしまい
ますが)順序は、1024<1280<1600です。1600を超えると、あまり
変わらないですね。F930でも、1280で見るより、1600での方がスムー
ズです(嘘情報もあるのですが、元が嘘ばっかりみたいなものです:)

 乞う、ご批判、ご修正、ご訂正、ご付加
返信 4 片岡  投稿日 3/4(日) 19:42:33  削除
HIDE様、教えてください。

> 特に3管やPCモニターのようにブラウン管を用いたものの場合
> ビームの太さを自由にコントロールするのは困難で、実際昔は
> ハイビジョン用の管がNTSCの地上波を苦手としていたこともありました。
> 現在のハイビジョン対応のワイドTVの多くがプログレッシブに
> なった裏には実はこの辺の事情もあります。

 この点に関して、某有名CRTメーカに聞いた事があります。回答は、
多種類の同期周波数に同調させる方が綺麗だけと、ハードに多少金が
かかるとの答えでした。また、そうすると、元のソースのバッチさが
判ってしまうので、デジタルで同じ周波数にアップコンバージョンする
んだとも言っていました。実際、高価な業務用モニターは、そのまま
のフォーマットで表示しますよね。
 NANAOに逆に15.75KHzに対応してといいましたところ、皆がそれを
言うけれど、やると15.75KHzの音が出てうるさいですよ、偏向コイル
の振動が止めにくいので画質に影響してやりたくないのです、という
ような答えでした。NANAOもそのままのフォーマットで出すほうが、
綺麗でしょうね(どうも実験しているくさい:)と言う答えでした。走査
線の幅に関しては、走査線数で変更するのはそれほど困難ではないよう
なことを言っていました。
 実際、どうなんでしょうねぇ。デジタルで加工するより、それぞれの
フォーマットで表示させてしまうほうが、良いように思うのですが。無
理にNTSCをプログレッシブに換えてくれなくてもいいし。DVDがしちゃう
んですし、デジタル放送は、プログレッシブですし。

お手数ですが、HIDEさん、POLARISさん、もう一つ教えてください。
> あと、アップスケーリングの場合、元の8ビット情報を使って計算すると9ビ
> ット以上になるので合成された下位ビットのデータは8ビットカードでは切り
> 捨て(または丸め込み)になります。
> Radeonは10ビットですから、この損失が殆どでない事になります。
とのことですが、
 RADEONは、1画面分の情報を、メモリ上で、10ビットで持っているわけで
すか?それとも、8ビットで保持していて、DACだけ10ビットなんでしょうか?
メモリ上で、各ピクセルのRGBそれぞれを10ビットで持っていれば、相当な
画質の向上が見込まれると思います。実際、スキャナで、RGB各8ビット
での情報を加工すると、どんどん誤差が溜まって、ひどいことになります。
 もし、RADEONが、メモリ上でRGB各10ビットで保持していれば、ソフトも
特定のもしかその10ビットを使わないわけですよね?それとも、どんなソフト
もRADEONであれば、10ビットでデコードしてくれるのでしょうか?

返信 5 HIDE  投稿日 3/5(月) 02:51:05  削除
片岡さま。

プロジェクターやPCモニターで見ることが目的でなければ、
正直に言いますと、全て専用の優れたディスプレイでその周波数で
見たほうが良いです。(絶対買えませんが。)

 特にNTSCは放送局用のBVMでそのまま見た画質を超える事は
難しいと思います。かなり前仕事で放送用のマスターテープを
BVMで見たことがあります。現在店頭で見るハイビジョンTV
より遥かにきれいでした。

同様に550万円ぐらいの業務用HDモニターで見ると評判の悪い
MUSE放送でも映画館を超える画質が得られることがありました。
市販のハイビジョンTVはこれに比べると普通のTVです。

実際、当時仕事で毎日こんなものを見ていたので、つい最近まで
家でAVをやる気がなくなってしまいました。

これらが飛びぬけた高性能を実現できている背景には、もちろん
高度な技術がありますが、前提として始めからブラウン管もドラ
イブ回路もそのフォーマット専用に設計されている事があります。
その為、家庭では使えないほど暗いです。

インターレースを含むマルチスキャンを行なう為には周波数だけ
ではなく、ビームの制御や明るさの確保など全てをアナログコン
トロールしなければなりません。例えやっても、回路だけでは解
決できないブラウン管側の制限もあります。
回路コスト以外にも調整の困難さもあります。

以前はそれでもNTSCモードとハイビジョンを両立させたること
を努力したモデルがありました。
最近はS社のDRC(*)が家庭用市場で成功してから、各社とも
ディジタル処理でプログレッシブ化を行なうようになりました。
フィーチャー競争もありますが、ブラウン管で頑張るよりもLSI
でやった方が楽だからだと思います。

*DRCは元々NTSCのビデオ素材をハイビジョン放送でアップコンバート
する際に起こるボケを解決するための業務用に開発された技術です。
統計的な予測補間により新たな画素を作りだし実際に解像度を上げます。
2−3プルダウンを元に戻すフィルム素材用のプログレッシブとは
方向性が異なります。
返信 6 HIDE  投稿日 3/5(月) 04:40:09  削除
片岡さま。

この辺は私もあまり詳しくないので確信はありません。
間違いがあったら指摘してください。

PCのビデオカードではRAMDACによって色変換します。これは
入力に対して出力を決めるルックアップテーブルによって色の
解像度を規定します。
256カラー、16BITカラーなどが自由に設定できるのはこのためです。
http://www.ascii.co.jp/ghelp/02/000220.html

32BITカラーと表現する場合、最近はこの変換テーブルの分解能を
示していて実際のDACの能力も伴っているのではない場合が多いよ
うです。
従ってカード側のメモリー上ではこの
32BITデータを持ちRAMDACで実際の値に変換してDACから出力されると
思われます。その結果が実際に出力可能な分解能のDACであるかどう
かは問わないのが業界の常識になっている様です。
プロ用のSGIのCGレンダリング用の液晶ディスプレイでも24BIT
カラーしか表示できないので、一般向けには十分でしょうが。
ATIが10BITにこだわるのは出版系でDTP業務で使われるマック
で常用されていることが影響しているのかも知れません。
印刷用の版下は24ビットでは不充分だそうです。

DVDソフトは元々各8BITデータですからデコードされた瞬間は、
このままでしょう。この色差をRGBに変換する場合、ここで
計算上9BIT以上になります。アップコンバートでも更に計算
するので実際には10BITを超えていると思います。これはRGB
合わせて30BIT以上ですが、このまま出力できればロスは出ません。
プレーヤソフトが何処までやっているか分かりませんが
スペック通りならば、RAMDACの直前まではどのカードでも32BITカラー
分のデータを吐き出してくれるはずです。これを実際のデータ
として10BITX3で出力できれば、まず普通の人間には誤差による
劣化は知覚できないでしょう。

ただ、あまり神経質になる必要はないと思います。
8BITDACでも人間の視覚上の限界といわれる53dBのS/Nは十分
とれます。商売がらどうも追求しすぎるのは私の悪いくせです。
返信 7 ma2  投稿日 3/5(月) 17:42:58  削除
みなさん、こんにちは。

スケーリングの話ですが、そう言えばグラフィックチップによって補間フィルタの
次数が違いますね。nVIDIA系は3〜5タップ、S3、ATi系が5〜7タップだったような
気がします。この意味でもHTPCにはnVIDIA系よりもATi系が良さそうです。

ただ2次元のフィルタリングって1次元信号のように理想的なフィルタ特性は作れ
なかったはずです。フィルタリングをDA変換時の帯域外ノイズの除去として見ると
多かれ少なかれ帯域内の信号も削ってしまいます。オーディオで言うところの
ソフトロールオフフィルタにしかなっていないからです。更にやっかいなのが、
斜め方向成分のフィルタリングをやっていないことで、そうした事情もあって
スケーリングにも賛否両論が出るのではないかと思います。

松下が今度出すBSデジタルテレビは斜め適応i/p変換をするという雑誌記事
があるのですが、どんな画質になるのか非常に興味があります。
返信 8 山口  投稿日 3/5(月) 18:22:59  削除

私もいろいろな解像度で試してみましたが
私の環境では1024x768がなんだかんだいって一番バランスが良いようです。
G400でカスタム解像度でいろいろ試してみましたが、高解像度だからきれいになるとは限らず
変な解像度にするとかえって縦縞が現れたりするので、難しいところです。
1440x1080なんかは画質向上するんじゃないかと期待してたんですが・・・・

NTSCもWinTV PVRとdTVを試してみましたが、どうも普通のテレビにかないません。
下手をすると数万円のアップスキャンコンバーターにすら負けてしまうかも・・・・
NTSCは残念ながら現状では普通にBVMやシバソクで見たほうが遥かにきれいですね。
ただ可能性はちょっとだけ感じるので追いかけてはいますが・・・
個人的にHTPCに関わってから感じるのは「インターレースはダメだな」という事です。
それはハイビジョンも例外ではなく、あの画質の本質的な汚さを補正で誤魔化す絵が嫌いになってしまいました。
現代ではメリットもほとんどありませんし、インターレースは早く無くなって欲しいというのが本音です。
DVDの画像にNTSCが少しでも近づければと思います。
返信 9 片岡  投稿日 3/5(月) 20:48:43  削除
HIDE様、毎回ご丁寧な説明有難うございます。

 高価な機器で、ほぼ毎日見ていますので、私も、自分ではとても
AVをやる気にはならないですね。信号本来のスペックを出し切ると、
NTSCでも馬鹿にできませんね。できれば、というより、昨年聞いた
のですが、ブラウン管の奥行きが問題にならないという利点が諸外
国にはあるためか、それぞれのフォーマットで出力する家庭用モニ
タを研究しいてるとのことです。調整の手間(自分でやるCRTの調整
の面倒さには閉口します)を考えると、コストが高いでしょうね。
 逆に毎日アナログ・デジタル変換(その逆も)で格闘していますが、
サンプリングレイトが高く、ビット長が大きくないと、誤差だらけ
になってしまい、デジタルでやるとかえってコスト高になることを
実感しています。音の例をあげると、32KHz、44.1、48、96KHzで
は、識音率で比較すると、どんなにディザを計算しようが、補間を
しようが、96Kzから極めて劇的に識音率が上がります。ですから、
デジタルでやるなら、現状程度ではなくて、きっちりと、良くなる
ところまでやって欲しいわけです。画像でも、学生諸君に頼んで
アナログテレビとデジタルプログレッシブテレビを見せてどっちが
良いか統計を取っていますが、まだまだアナログに軍配が上がって
います。
 現在、画像の品位として十分とは思えないデジタルテレビが氾濫
していますが、それだけ見ていると、DRCは、すぐれていると思いま
す。ですが、わたしは、アナログと比べてもっと良くなるように
デジタル技術を使って欲しいものだと思っています。
返信 10 片岡  投稿日 3/5(月) 21:17:19  削除
わたしの知識は、むかーし、むかーし、X11R5の設計に携わった
時からあまり大きく進歩してはいないのですが:)

32BITカラーというのは、結局カラールックアップテーブルの
大きさなのか、RGB各8Bitを8、8、8、の24Bitで保持していて、
24Bit単位では読み出せないので、使用しない8Bitを加えて32Bit
のアラインメントにしているのか、定かではありません。
聞いたところでは、R=8、G=8、B=8、Padding=8の32ビットだと
いうことです。
 MPEG2になった状態では、すでに、色空間からRGB値に直っている
はずですから、最初にメモリ上に展開されるときは、R=8、G=8、B=8
ですよね。で、その記憶先も、それぞれ、8Bitしかないと思うので
す。
 もし、記憶先が、16、16、16あれば(PhotoShopでは、可能です)、
上位8ビットに置いておいて、種々の処理をしたときに下位ビット
に結果が残りますから、大変好ましいわけです。印刷で言うところの
8ビットでは駄目というのは、このことだと思います。
 もし、ここで、各色16ビットで保持をしていて、上位10ビットの
出力ができるなら、それはすばらしいことです。印刷では、プリンタ
側(印刷機側の)ほうで、10ビットどころか、階調は6ビットもないです
が:)、誤差無く上位ビットを出せる点が良いわけです。
 問題は、各色(各RGB値)を16ビットで保持していれば、10BIT DACで
より良い画像がでると思いますが、元が各色8ビットでしたら、10BIT
DACの上位8ビットしか使っていないと思うのです。
 ソフトウエアが、Graphics Board上のメモリを16BitX3で使用した
として、1ピクセル6バイトですから、1280X1024ドットで表示するとき
1280X1024X6バイト=7864320バイトですので、7.68MBですよね。
1600X1200では、11.25MB、2000X1440では、17MBぐらいですので、
Graphic Boardのメモリには収まりますね。
 もし、推測どおりに、Graphics Boardのメモリ上に展開し、RGB各
16Bitで保持して計算していれば、10DACは十分にメリットがあります。
良い出力装置で見れば見るほど差が出ると思います。
 疑問は、ソフトが、各16ビットで計算して、同時にDACに上位10ビット
分を送っているかどうかなです。HIDEさん、POLARISさん、ご存知ですか?
どなたかご存知ありませんか?
返信 11 山口  投稿日 3/5(月) 22:46:13  削除

>片岡さん

残念ながらチップ内の10bit処理の中身については詳しくありませんが
24bitと32bitではDVDの画質が明らかに違うのには驚きました。
私はどちらも色数は24bitだと思っていたので違いはないんじゃないかと考えていたんですが
実際比べてみると赤の諧調等が段違いに改善されます。
こう違いを見せ付けられると内部処理には私も大変興味があります。
返信 12 かめ  投稿日 3/6(火) 00:28:27  削除
片岡さん、

X11についてはあまり詳しくないのですが、一般的に言って、8bitカラーでは
カラー・ルックアップ・テーブル(パレット)を使い、それ以上ではカラー・デー
タを直接保持する実装が多いです。

Windowsでは、8bit(256色)ではパレットを使いますが、16bit以上はパレット
を使いません。

RGB各8bitを保持するには、24bitあればよいのですが、24bitでメモリ上に展
開すると、読み出し書き込みが面倒なので、8bit無駄にして32bitとしている
のが、Windowsです。

Windows以外だと、NeXTSTEP/OPENSTEPでは、透明度をあらわすアルファ・チャ
ネルを持っていて、RGBα各8bitで、32bit記録していました。これは、OSレベ
ルでサポートされていました。

MacintoshのQuickドローでは、この機構はありませんでしたが、アプリケーショ
ン・レベルでアルファ・チャネルを扱えるものがありました。Mac OS Xは、
OPENSTEPの直系ともいえるので、OSレベルでアルファ・チャネルがサポートさ
れているかもしれません。

私の知っている、各色8bit以上を保持できるマシンには、SGI Octain、Octain2、
Onyx2、Onyx3000等があります。

Octain:   36bit (12/12/12) RGB
Octain2:  48bit (12/12/12/12) RGBA、64bit (16/16/16/16) RGBA
Onyx2:    48bit (12/12/12/12) RGBA
Onyx3000: 今ちょっと分からないけど、Onyx2の上位互換なので。

Aは、アルファ・チャネルです。詳しくは、以下を参照してください。

http://www.sgi.co.jp/products/index.html
返信 13 片岡  投稿日 3/6(火) 14:49:27  削除
山口様、かめ様、ご教授有難うございます。

24ビットカラーでは、CPUが32ビットの境界でしかアクセス
できないので、アクセスするときマシン語レベルで、多数必要
で遅くなるので、なにかはしょってしまう可能性がありますよ
ね。Windowsのカラーを使用した静止画レベルでは、かめさん
のご指摘のとおり、RGB各8ビット+8ビットのパディングで、
32ビットを使っていると思います。

DVDの画像は、オーバーレーで、グラフィクボードに搭載された
メモリ上で生成されていると思います。でないと、とっても間
に合いそうにないですのです。そうすると、Windowsの呪縛を
離れてRGB各16ビットで保持できるのではないかと思うわけです。

色々考えてみると、MPEG2のデコーディングで、RGB各8ビットだ
と誤差が溜まって綺麗には出ないと思うのです。

そういうわけで、いったい、何処でDVDのオーバーレイ用画像の
情報が作られ、何ビットで保持されているか、疑問なわけです。
返信 14 HIDE  投稿日 3/6(火) 18:04:24  削除
色々、調べてもこの件に関してはメーカー情報にものって
いないようですね。

ma2様に教えていただいた
>スケーリングの話ですが、そう言えばグラフィックチップによって補間フィルタの
>次数が違いますね。nVIDIA系は3〜5タップ、S3、ATi系が5〜7タップだったような
>気がします。
を見ると切り捨てた場合の計算誤差は予想外に大きいと思います。
グラフィックチップ内でどう処理しているのか、非常に気になりますね。

ただ、それはそうと昔ビデオ系の設計をしていた頃の経験では
8BITのDACはスペック上8BITの分解能を実現できて
いないことが多く、最下位ビットの分解能を確保する為には
ソースが8ビットでも10ビットDACにするのが効果的でした。
人間の視覚上で影響が出やすいのは、この最下位ビットのあたり
なので、もし単純に24ビットデータだとしてもかなり差は出る
ような気がします。
 
あと、昔のビデオカードはRAMDACが別チップだったので良かったのですが、
最近のはLSIに内蔵化されたので、ちょっと不安です。
内蔵化は多くの場合S/Nやリニアリティが後退する場合が多いので。

確かG400が唯一、片チャンネルが外付けのRAMDACだったので
ちょっと興味があるのですが、これはDVD再生で使えるのでしょうか。
どなたか教えていただけないでしょうか?
(G450は内蔵です。)
返信 15 山口  投稿日 3/6(火) 18:19:16  削除

>確かG400が唯一、片チャンネルが外付けのRAMDACだったので
>ちょっと興味があるのですが、これはDVD再生で使えるのでしょうか。

使用可能です。
プライマリのチップ内臓RAMDACも内臓としてはかなりいい部類だと思います。
正確に計測した訳ではありませんが、初代ミレのTIのRAMDACと比べても
特に画質の後退は普段感じていませんから。
返信 16 ma2  投稿日 3/6(火) 22:32:28  削除
RGBの演算精度等が話題になっていますが、一つ話に出てきていないことが
あると思います。

DVDやDV等のデジタルのビデオ信号YCbCrは各々8bit256階調の信号ですが、
CCIR601という規格により黒のY値を16、白のY値を235としています。
同様にCbCrの値も16〜240の範囲とされています。

DVDをソフトウェアで再生する場合、デコーダーソフトによってMPEG2データ
からYCbCr値が復元されるとこれがグラフィックチップに送られますが、
グラフィックチップはこのYCbCrをRGBに変換する際、Y信号に着目すると
Y=16の信号がRGB=0、Y=235の信号がRGB=255になるように変換します。
同様にCbCrの信号も16〜240の範囲が0〜255になるようにマッピングします。

私はデコーダーソフトがYCbCrのデータを何bitで送ることが出来るのか、
グラフィックチップがYCbCr→RGBの変換を何bitでやっているのかは残念ながら
知りませんが、上記の仕組みがほとんどのグラフィックチップで成り立っている
ことを考えるとYCbCrを8bit以外の語長で表現することって考えにくいのですが。
大抵のグラフィックチップはWindowsの色数を256色に設定していてもオーバーレイ
はフルカラーで表示しますし。Windowsの色数はあまり関係ないように思うのですが。

Windowsのアプリケーションを作る人ならDirectDrawのAPIを調べれば少なくとも
OSレベルでの語長は分かりそうですね。

ところで上記のYCbCr→RGBの変換ですが、実は黒のY値=16、白のY値=235といっても
実際の映像信号にはこの範囲を超える信号値がありますので、このままだと必ず
ある程度の白の飛びがあります。オーバーレイの画質調整が出来ないとこの面で画質的に
不利ですし、調整が出来るものであればコントラストを若干落としてやるとこの部分の
階調の飛びを改善することができます。

返信 17 ma2  投稿日 3/7(水) 18:01:09  削除
デコーダーはYCbCrのデータ(俗にYUVと言われる事が多いですが)を
グラフィックチップに送っていますが、ちょっと思い出したことがある
ので調べてみました。

PowerDVDではDirectDrawの機能をテストするツールがありますよね。
UYVYとかYUY2とかYV12とかの文字が出てきますが、あれがグラフィックチップが
YUVのデータを引き取るときのデータのフォーマットです。

で、
http://www.sgi.co.jp/visual/tech/update/video/Pages/vidplay.html
http://www.sgi.co.jp/visual/tech/update/video/Pages/uncompressed.html
を見るとYCbCrの時点では各々8bitのデータのようです。

考えてみればYCbCr=422とか420、411とかY信号に対しCbCrのデータは間引かれて
いますから1ピクセルに対しYとCr、YとCbのように16bitで送るか2ピクセル分の
YといっしょにしてYCbYCrで32bitで送る方が効率が良いですね。

あとのRGBの変換およびスケーリングはグラフィックチップ内の処理ですから
この辺りの情報を得るのは絶望的かも知れません。
返信 18 片岡  投稿日 3/7(水) 20:20:30  削除
ma2様

 お手数ですが、教えてください。

 YCbCrの信号をそのままグラフィックチップが受け取って
画像にしているのでしょうか?ようするに、チップ内で、RGBに
変換してRとGとBのそれぞれのDAC機能に送っているということ
でしょうか?
 ちょっと混乱してしまったのですが、AV機器の方のDVDプレーヤで
行われていることと、PCのグラフィックボードで行われていることと
同じではないとおもうのですが、どこが違うが教えていただけません
でしょうか?
返信 19 POLARIS  投稿日 3/7(水) 20:52:24  削除
>YCbCrの信号をそのままグラフィックチップが受け取って
>画像にしているのでしょうか?ようするに、チップ内で、RGBに
>変換してRとGとBのそれぞれのDAC機能に送っているということ
>でしょうか?

少なくともRadeonではYCbCrからRGBへのカラースペース変換は
チップで行うようです。前にも出しましたが、こちらのp19に出て
います:
http://www.ati.com/na/pages/resource_centre/dev_rel/atirdv.pdf

AVSForumで、ATIに前つとめていてRadeonの開発にも関わっていたと称する
人が、Radeonはカラースペース変換はドライバさえ対応すれば自由に設定でき、
しかもその変換は10bitよりさらに高精度で行っていると書いていたのを
読みました。
返信 20 ma2  投稿日 3/7(水) 22:46:38  削除
>YCbCrの信号をそのままグラフィックチップが受け取って
>画像にしているのでしょうか?ようするに、チップ内で、RGBに
>変換してRとGとBのそれぞれのDAC機能に送っているということ
>でしょうか?

Radeonだけでなく大抵のグラフィックチップがそうです。
古くはATiであればmach64というチップの頃からこの機能が
実装されていました。当時はDVDもなく、mpeg1等の動画再生支援機能
として実装されていました。YUV→RGBのカラースペース変換をグラフィック
チップがハードウェア支援することで少しでもCPUの負荷を減らそうとの
機能です。今だと多分カラースペース変換は演算でやっていると思いますが、
当時は色調が明らかにおかしかったので、もしかしたらアナログ回路で行って
いたのではと邪推しています。

その後DirectXが整備されて当たり前の機能になりました。
ソフトDVDデコーダーだとDirectDrawが使えないと動作しないので確認できない
のですが、AVIやmpeg1の動画をMediaplayerで複数再生すると、DirectDrawが
1画面でしか機能しないため2つ目以降の画面はCPUがソフトウェアでカラースペース
変換することになりこれらの画質を比較すると結構面白いです。スケーリングも
0次ホールドになるのでジャギーが激しく、如何にアンチエイリアスフィルタが
有効かも分かりますし。
返信 21 片岡  投稿日 3/7(水) 23:33:35  削除
皆様有難うございます。だいぶ判ってきました。

 下記のようにDVDのMPEG2がデコードされているのでしょうか?
疑問点が解決してこないので、再度教えてください。

1)DVDの内容を読み出す。読み出された結果を伸張して
その結果がYCbCrとなる?
2)YCbCrのまま、2-3逆プルダウンだとかモーションコンペン
セーションされる?
3)YCbCrのまま、Graphics Chipに送り、RGB変換され、
この時点で、そのまま、DACからRGBアナログとして出力される?
4)従って、YCbCrからRGBへ変換する精度だけで色が決まってしまう?

ということで、メモリ上では、一度もRGBとして、保持されていない
んでしょうか?

YCbCrで、DVDは、422でしたっけ?だけで、画像の補正をしてるとすると、
もっと情けない画像になりそうな気がしますねぇ。どうなんでしょうか?
返信 24 ma2  投稿日 3/10(土) 00:25:35  削除
すっかり遅レスになってしまいましたが。

>1)DVDの内容を読み出す。読み出された結果を伸張して
>その結果がYCbCrとなる?
>2)YCbCrのまま、2-3逆プルダウンだとかモーションコンペン
>セーションされる?
>3)YCbCrのまま、Graphics Chipに送り、RGB変換され、
>この時点で、そのまま、DACからRGBアナログとして出力される?

ご存知かとは思いますが、mpegはYCbCrの信号に離散コサイン変換(DCT)
や動きベクトル検出を行って圧縮したものです。デコード結果はYCbCrの
色差信号となります。

ここで上記の2)についてですが、2-3逆プルダウンというのは60フィールド/秒
のソースから24フレーム/秒の情報を取り出すことで、60フレーム/秒以上の
プログレッシブ信号に変換することとは別のことだと思うので、DVDの24pソースの
場合は当てはまらないと思います。mpeg2ではインタレースとプログレッシブの
両方に圧縮時点で対応していて、24pのソースはプログレッシブのまま圧縮されて
いて、デコード結果もプログレッシブになるはずだからです。

同じく2)のモーションコンペンセーションですが、具体的な機能についての
記事を見たことはないのですが、おそらく動きベクトルの復元をグラフィック
チップのハードウェアで行うものだと思います。確かエンコード時には動きベクトル
の検出を行ってから、この成分を圧縮前の画像から差し引いて残った成分に対し
DCTをかけるので、デコード時は動きベクトルとIDCT(逆離散コサイン変換)の結果を
足し合わせることになります。これをグラフィックチップのハードウェアで行うもの
だと思います。RadeonのIDCTという機能は、更にIDCTの演算もCPUではなくチップの
ハードウェアで行うという機能なのでmpegデコードのかなりの部分をグラフィックチップ
が行っていることになります。これらはすべてYCbCrカラースペース上の処理です。

>ということで、メモリ上では、一度もRGBとして、保持されていない
>んでしょうか?

そういうことになると思います。

>YCbCrで、DVDは、422でしたっけ?だけで、画像の補正をしてるとすると、
>もっと情けない画像になりそうな気がしますねぇ。どうなんでしょうか?

DVDは422どころか420ですね。DVだと411ですけど。市販のDVDプレイヤーで
垂直方向に色のはみ出しが出るのは420で垂直方向の情報が半分に間引かれている
からです。おそらく間引いた信号を補間するのに0次ホールドで表示している
ためでしょう。逆にHTPCでこれが改善されるのはグラフィックチップの
スケーリング時のフィルタリングが上手く効いているのかもしれませんね。

私はSavage4のビデオカードを持っているのですが、このチップは色成分だけ
ジャギーがでます。推測ですが、YCbCr→RGBの際0次ホールドでCbCrを補間し、
その後スケーリングのフィルタが掛かるためではないかと思っています。
単にチップのバグかもしれませんが。
返信 25 HIDE  投稿日 3/15(木) 19:47:37  削除
2-3逆プルダウンは市販のDVDプレーヤーの場合は基本的にはフラグの
周期性を見てフレームに戻しています。
本来はmpeg2が24Pをそのまま扱えるのですが、
実際にはD1マスター上で編集をした際に、この周期性が崩れている場合が
起こるので運用上はちょっと違っているようです。
メーカーのプレーヤーでは、これが崩れた場合に破綻しにくい様、各社工夫
しているとの事です。

ただマスタリングスタジオの方々の話では最近の良いDVDは例の
 映画フィルム=>ハイビジョンテレシネ=>D1マスター
が増えているので、崩れることは少なくなってきたと言っていました。

あとRADEONに限って考えると、POLARIS 様に教えていただいた。
http://www.ati.com/na/pages/resource_centre/dev_rel/atirdv.pdf
を読む限り、YCbCrのまま最後まで処理が可能で、現状は最後に
YCbCr=>RGB変換しているように見えますね。
それならばチップ内部の計算語長を確保出来ていればそれほど
酷いことにはならない気がします。

気になるのはチップ自体は色差信号のまま出力できると、うたって
いることですね。現状のRGB変換で切り捨てられる情報量を考えると
YCbCrのまま出力してRGB変換をD2001のようなリニアリティの良い
ディバイスで行わせた方が、今より更に画質が向上すると思います。
そういう意味ではAYRE D1がRGB出力段に14bitDACを使って
いるのは実に効果的といえます。

>垂直方向に色のはみ出し
の件は、4:4:4に補間処理してからプログレッシブ化を行っている
メーカーが現状、少ない為のようです。

一覧へ戻る】 ※最新の画面を表示するにはリロードしてください。
 またproxy経由の場合など、投稿が一覧に反映されるのに時間がかかることがあります。