MSX Datapack wiki化計画

9章 YJK方式の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
{{include unfinished_page}}

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[8章 V9958の構成]]                                                                ,{BSIZE:0|RIGHT}[[10章 V9958の画面モード]]                                                        →

!!9.1 YJK方式とは

 MSX2までは、色の情報を扱うために、色を赤、緑、青の信号に分解してその割合を数値で表現する方式(RGB方式)が採用されていました。これに対して、YJK方式とは色情報を輝度成分(Y)と色相成分(JとK)に分解してVRAM上に置き、表示するときにRGB方式に変換するものです。
 V9958ではVRAMの容量をV9938と同じにするために、輝度情報については、画面1ドットに対して5ビット(0〜31)設定できるようになっていますが、色相情報については、画面4ドットに対して6ビット(-32から+31)しか設定できません(SCREEN 12の場合)。
 YJK方式は、デジタイズ処理の際も4ドットごとのJ、Kの値をどうするかなどの点で難しい面がありますが、最大の特徴はVRAM容量を変えずに色数が増えたことです。YJK方式はほとんど共通のRとGとJKとし、これにBおよび明るさのグラデーションをつけるYを加えて表示する方式なので、同じ色調のグラデーション(自然界に多い)や、白や灰色などの無彩色の背景上にある物体などを表現する能力が高く、真っ青な背景に斜めの明るい黄色や赤の細い線などの人工的な物体の表現能力はあまり高くないという性質があります。つまり、人工的なコンピュータグラフィックスなどには向かない場合もありますが、自然物の表示には相当の効果があります。
 19,268色という数字は、このYJKの取り得るすべての値で導かれるRGBの組み合わせを計算して重複しているものを除いたものです。
 19,268色という数字は、このYJKの取り得る全ての値で導かれるRGBの組み合わせを計算して重複しているものを除いたものです。

!!9.2 YJKとRGBの変換

!9.2.1 YJKからRGBへの変換式

{{chart \mathrm R=Y+J }}

{{chart \mathrm G=Y+K }}

{{chart \mathrm B=\frac{5}{4}Y-\frac{1}{2}J-\frac{1}{4}K }}

//  R = Y + J
//  G = Y + K
//  B = 5/4Y-1/2J-1/4K

!9.2.2 RGBからYJKへの変換式

{{chart \mathrm Y=\frac{1}{2}B+\frac{1}{4}R+\frac{1}{8}G }}

{{chart \mathrm J=R-Y }}

{{chart \mathrm K=G-Y }}

//  Y = 1/2B+1/4R+1/8G
//  J = R - Y
//  K = G - Y

,{t},{BSIZE:1 0|SIZE:100%}
,{BSIZE:0}←[[8章 V9958の構成]]                                                                ,{BSIZE:0|RIGHT}[[10章 V9958の画面モード]]                                                        →