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_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_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_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_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];
説明
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 の矩形を表現します。単位は全てドットです。
2 値イメージライブラリの関数には、先頭アドレス ( adr ) が 偶数アドレスでかつ、iw が 16 の倍数でなければならないという 制限を持つ関数があります。
イメージボードライブラリシミュレーション
従来ハードウェア( イメージボード NWB-242/243 ) で 提供していた機能 ( イメージボードライブラリ ) を シミュレートするための次の関数群も用意されています。 イメージボードライブラリにおけるボード上のアドレスが、 これらの関数ではプロセスにおけるアドレスを 示すこと以外はイメージボードライブラリの対応する関数と 同じです。
ibs_ib_compress− G4 圧縮
ibs_ib_expand− G4 復元
ibs_ib_zoom− 拡大・縮小
ibs_ib_rotate− 回転
ibs_ib_trans− 矩形転送
ibs_ib_mirror− 鏡像処理
ibs_ib_set_filttable− フィルタ処理の準備
ibs_ib_filt− フィルタ処理
関連ファイル
/usr/sony/demo/libibs/bin/ibsdemoデモプログラム
/usr/sony/demo/libibs/src/∗デモプログラムのソースコード
関連事項
ibsdemo(1), ibs_compress(3X), ibs_expand(3X), ibs_getioerror(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.1C