LIBIBS(3X) — NEWS-OS Programmer’s Manual
名称
libibs − 2 値イメージライブラリ /usr/sony/lib/libibs.a の解説
形式
2 値イメージの圧縮
ibs_compress_open(iw, x, w, flag, mode, work,
inf, inarg, outf, outarg, outbuf, outsize)
int ∗work; int (∗inf)();
char ∗outbuf; int (∗outf)();
ibs_mhcompress(imgadr, work)char ∗imgadr; int ∗work;
ibs_mrcompress(imgadr, work)char ∗imgadr; int ∗work;
ibs_put1d_eol(work)int ∗work;
ibs_put2d_eol(next, work)int ∗work;
ibs_put_fill(n, work)int ∗work;
ibs_put1d_rtc(work)int ∗work;
ibs_put2d_rtc(work)int ∗work;
ibs_put_eofb(work)int ∗work;
ibs_comp_flush(work)int ∗work;
ibs_comp_align(work)int ∗work;
ibs_comp_getworksize(w, flag, mode)
圧縮された 2 値イメージの復元
ibs_g3expand1d_open(iw, x, w, flag, work,
inf, inarg, inbuf, inbufsize, outf, outarg)
int ∗work; int (∗inf)();
char ∗inbuf; int (∗outf)();
ibs_g3expand1d(imgadr, work) char ∗imgadr; int ∗work;
ibs_g3skip1d(work, pnbyte) int ∗work; int ∗pnbyte;
ibs_g3expand2d_open(iw, x, w, flag, work,
inf, inarg, inbuf, inbufsize, outf, outarg)
int ∗work; int (∗inf)();
char ∗inbuf; int (∗outf)();
ibs_g3expand2d(imgadr, work) char ∗imgadr; int ∗work;
ibs_g3skip2d(work, pnbyte) int ∗work; int ∗pnbyte;
ibs_expandtiff_open(iw, x, w, flag, work,
inf, inarg, inbuf, inbufsize, outf, outarg)
int ∗work; int (∗inf)();
char ∗inbuf; int (∗outf)();
ibs_expandtiff(imgadr, work) char ∗imgadr; int ∗work;
ibs_g4expand_open(iw, x, w, flag, work,
inf, inarg, inbuf, inbufsize, outf, outarg)
int ∗work; int (∗inf)();
char ∗inbuf; int (∗outf)();
ibs_g4expand(imgadr, work) char ∗imgadr; int ∗work;
ibs_exp_getworksize(w, flag, mode)
2 値イメージの拡大、縮小
ibs_2drzoom_open(iniw, inx, inw, inrh, outiw, outx, outw, outrh,
flag, mode, work, inf, inarg, outf, outarg)
int ∗work;
int (∗inf)(); int (∗outf)();
ibs_2drzoom(c, inimgadr, outimgadr, work)
char ∗inimgadr, ∗outimgadr; int ∗work;
ibs_2dzoom_open(iniw, inx, inw, inh, outiw, outx, outw, outh,
flag, mode, work, inf, inarg, outf, outarg)
int ∗work;
int (∗inf)(); int (∗outf)();
ibs_2dzoom(inimgadr, outimgadr, work)
char ∗inimgadr, ∗outimgadr; int ∗work;
ibs_1dzoom_open(iniw, inx, inw, outiw, outx, outw,
flag, mode, work, inf, inarg, outf, outarg)
int ∗work;
int (∗inf)(); int (∗outf)();
ibs_1dzoom(inimgadr, outimgadr, work)
char ∗inimgadr, ∗outimgadr; int ∗work;
ibs_zoom_open(iniw, inx, inw, outiw, outx, outw,
flag, mode, work, inf, inarg, outf, outarg)
int ∗work;
int (∗inf)(); int (∗outf)();
ibs_zoom(inimgadr, outimgadr, work)
char ∗inimgadr, ∗outimgadr; int ∗work;
ibs_2dzoom_getworksize(iniw, inw, outiw, outw, flag, mode)
ibs_zoom_getworksize(inw, outw, flag, mode)
2 値イメージの回転
int ibs_rotate(deg, sadr, siw, sx, sy, w, h,
dadr, diw, dx, dy)
char ∗sadr, ∗dadr;
2 値イメージの矩形転送、鏡像処理
int ibs_trans(rop, sadr, siw, sx, sy, w, h,
dadr, diw, dx, dy)
char ∗sadr, ∗dadr;
int ibs_mirror(rop, sadr, siw, sx, sy, w, h,
dadr, diw, dx, dy)
char ∗sadr, ∗dadr;
2 値イメージのフィルタ処理
int ibs_filter(table, sadr, siw, sx, sy, w, h,
dadr, diw, dx, dy)
char table[64]; char ∗sadr, ∗dadr;
その他の関数
int ibs_encode(outarg, imgadr, iw, w, x, sline, flag)
char ∗imgadr; int ∗sline;
int ibs_decode(outarg, imgadr, iw, w, x, sline, flag)
char ∗imgadr; int ∗sline;
ibs_getioerror(work)
int ∗work;
イメージボードライブラリシミュレーション
#include <newsiop/ib.h>
IBS_ib_compress(cep)struct _ibcep_param ∗cep;
IBS_ib_expand(cep)struct _ibcep_param ∗cep;
IBS_ib_zoom(lic, mode)struct _iblic_param ∗lic; int mode;
IBS_ib_rotate(lic, angle)
struct _iblic_param ∗lic; int angle;
IBS_ib_trans(lic)struct _iblic_param ∗lic;
IBS_ib_mirror(lic)struct _iblic_param ∗lic;
IBS_ib_filt(lic)struct _iblic_param ∗lic;
IBS_ib_set_filttable(n, table)
int n; unsigned char table[64];
ibs_ib_compress(cep)struct _ibcep_param ∗cep;
ibs_ib_expand(cep)struct _ibcep_param ∗cep;
ibs_ib_zoom(lic, mode)struct _iblic_param ∗lic; int mode;
ibs_ib_rotate(lic, angle)
struct _iblic_param ∗lic; int angle;
ibs_ib_trans(lic)struct _iblic_param ∗lic;
ibs_ib_mirror(lic)struct _iblic_param ∗lic;
ibs_ib_filt(lic)struct _iblic_param ∗lic;
ibs_ib_set_filttable(n, table)
int n; unsigned char table[64];
説明
2 値イメージライブラリ libibs.a は 2 値イメージに対する次の処理を 行う低レベル関数から構成されます。
圧縮・復元 ( G3 / G4 )
拡大・縮小 ( 整数 / 整数 )、回転 ( 90 / 180 / 270 度 )
鏡像処理、矩形転送、フィルタ処理 ( エッジ抽出など )
詳細は個々のオンラインマニュアルをご覧ください。
データ構造
2 値イメージライブラリで使用されるイメージデータの データ構造について説明します。
ビットイメージの表現
イメージデータのそれぞれのラインは、バイト列として見た場合、 右に向かうほどアドレスが増加します。また、下にあるラインの方が 大きなアドレスを持ちます。
各バイト内のイメージデータは左側が MSB (Most Significant Bit) になります。
圧縮復元において、あるビットが 0 の場合は対応するドットが白であり、 1 の場合は対応するドットが黒になります。
矩形領域の表現
2 値イメージライブラリでは、矩形(長方形)領域を表現するために adr (先頭番地)、iw (イメージ幅)、x、y、w (幅)、h (高さ)の 6 つの変数の組を使用します。また、1 行だけの領域の表現として adr、 iw、 x、 w の 4 つの変数の組を使用します。
adr 番地を左上先頭番地とし、幅 iw ビットの平面を考え、 横(X)軸は右方向、縦(Y)軸は下方向(共にアドレスが増加 する向き)を正とする座標系をとります。この座標系のもとで、 adr 番地の MSB (0,0) からのビットオフセット (x, y)、 幅 w、および高さ h の矩形を表現します。単位は全てドットです。
イメージボードライブラリシミュレーション
従来ハードウェア( イメージボード NWB-242/243 ) で 提供していた機能 ( イメージボードライブラリ ) を シミュレートするための次の関数群も用意されています。 イメージボードライブラリにおけるボード上のアドレスが、 これらの関数ではプロセスにおけるアドレスを 示すこと以外はイメージボードライブラリの対応する関数と 同じです。
IBS_ib_compress− G4 圧縮
ibs_ib_compress− G4 圧縮
IBS_ib_expand− G4 復元
ibs_ib_expand− G4 復元
IBS_ib_zoom− 拡大・縮小
ibs_ib_zoom− 拡大・縮小
IBS_ib_rotate− 回転
ibs_ib_rotate− 回転
IBS_ib_trans− 矩形転送
ibs_ib_trans− 矩形転送
IBS_ib_mirror− 鏡像処理
ibs_ib_mirror− 鏡像処理
IBS_ib_set_filttable− フィルタ処理の準備
ibs_ib_set_filttable− フィルタ処理の準備
IBS_ib_filt− フィルタ処理
ibs_ib_filt− フィルタ処理
IBS_ib_rotate と ibs_ib_rotate は回転の方向が逆です。
IBS_ib_zoom は ibs_ib_zoom よりも、イメージボードで得られる結果に、 より近い結果を得ることができます。
その他の IBS_ib で始まる関数は ibs_ib で始まる関数とまったく同じです。
関連ファイル
/usr/sony/demo/NWB243/bin/ibsdemoデモプログラム
/usr/sony/demo/NWB243/src/∗デモプログラムのソースコード
関連事項
ibsdemo(1), ibs_compress(3X), ibs_expand(3X), ibs_getioerror(3X), ibs_2dzoom(3X), ibs_zoom(3X), ibs_encode(3X), ibs_rotate(3X), ibs_trans(3X), ibs_mirror(3X), ibs_filter(3X)
NEWS-OS 4.0 マニュアルセット プログラマーズガイド「イメージボードライブラリ」
NEWS-OS 4.1 マニュアルセット プログラマーズガイド「 2 値イメージライブラリ」
NEWS-OSRelease 4.2.1R