Vag/Xa enCOde/DECode subroutines version 0.04 1997.11.13





EVAG ENCODER



	SONY񋟂̃CuƓdliꕔʌ݊jłB

	ȉɃCut̃eLXgp܂B





--

 GR[h[`̒񋟌`



MetroWerks А Macintosh J CodeWarrior (CW11) ̃Cu

`



 GR[h[`̗



GR[h́A16 bit f[^ 28 Tv (56 oCg)   1 ubNPʂ

čs܂B[v́AVAG wb_ł͂ȂAg`f[^̂ɕt܂B



GR[hɍۂĂ͎Ŋ֐QgpAL̎菇ōs܂B



(1) EncVagInit() ɂă[hw肵AGR[h[`B

(2) 28 TvPʂ EncVag() R[AkϊsB

(3) (2) JԂB

(4) Ō̃ubN 0 pfBOAEncVag() R[B

(*) one shot g`̏ꍇ́AEncVagFin() R[B



 VAG t@C



{GR[_[`ł́AVAG wb_Ȃǂ̏o͂͂܂BVAG t@CƂďo

͂ۂ́A 'VAGp'  'pGAV' Ŏn܂ 30H  VAG wb_A16 oCg̔g

`JnubN(g͑S 0 )ɈAEncVag() ̏o̓f[^tĂ

BɁAone shot g`̍ۂɂ́AEncVagFin() œg`IubNŌ

ɉKv܂B



VAG wb_ ('VAGp'EEE)

30H (48 oCg)



g`JnubN(all 0)

10H (16oCg)



g`f[^

C



g`IubN(one shot ̏ꍇ̂)

10H (16oCg)





g`IubNȗƁASPU ݂듮삷邱Ƃ܂B[vg

`̏ꍇ́Ag`IubNtKv͂܂B



 ֐dl

____________________________________________________________

void EncVagInit ( short conv_mode )



GR[h[`̏VAGs܂Bg`f[^GR[h

ہA͂߂ɕKxR[Kv܂B



ϊ[h conv_mode A"Stndard"A"High Band"A"Low Band"A"4bit 

Straight" ̒w肵܂B



1: Standard

2: High Band (g𑽂܂ޔg`ɗL)

3: Low Band (𑽂͐܂ޔg`ɗL)

4: 4bit Straight (16 bit  4 bit ɒϊ)



____________________________________________________________

void EncVag ( short x[], short y[] , short block_attribute )



z x Ŏw肳ꂽ 28 Tv (56oCg) ̃f[^kϊA16 

oCg z y ɃXgA܂Bz y ́A8 short wordō\܂B



̍ہA[v̐ݒ block_attribute ɂĉL̒ʂw肵܂B



0 : [vg` (one shot)

1 : [vg`g`IubN

2 : [vLg`[vJnubN

3 : [vLg` (JnAIubN)

4 : [vLg`g`IubN



____________________________________________________________

void EncVagFin ( short y[] )



SE Ȃǂ one shot (񃋁[v) g`kϊۂ́AŌɂ̊֐Ă

Ŕg`IubN𕉉ׂKv܂Bz y ́A8 short word ō\

܂B



VAG GR[_[`dl Ver 1.00 (May 29, 1997)	CONFIDENTIAL



(C) 1997 Sony Computer Entertainment Inc. All Rights Reserved.		1





--

܂



	IWiEncVagFin֐ُ͈ȌʂԂ܂

	̔łł͏CĂ܂B



	EncVag֐Ŏw肷block_attributegĂ܂B

	

	5 : [vg` PubN̂

	6 : [vg` JnubN

	7 : [vLg` PubN̂





EXA ENCODER



	܂iKłVAG ENCODERč쐬XA ENCODERpӂ܂B



	________________________________________________________________________

	void EncXaInit(void)



	GR[h[`܂Bp[^̎w͂܂B



	________________________________________________________________________

	EncXa(WORD *x, UBYTE *y, UBYTE fn, UBYTE ch, UBYTE sm, UBYTE ci)



	1ZN^(28Tv~8jbg~18TEhO[v)

	16bit linear PCM ϊ܂Bt@CԍfnɁA`lchɁA

	Tu[h(ʏ0x64)smɁAR[fBOciɎw肵܂B



	XeIf[^̏ꍇ͂炩߁A1jbgɍE

	`lf[^zuĂKv܂(b)B

	1O[v͍`lAE`l̏4jbgÂ

	v8jbg\܂BB





EVAG/XA DECODE



	________________________________________________________________________

	void initWork(void)



	fR[h܂B(VAG/XA)





EVAG DECODER



	________________________________________________________________________

	LONG decodeVAG(UBYTE *s, WORD *d, LONG p_len)



	sp_lenubNVAGf[^16bit linear PCM ɕϊ

	dɊi[܂BԂl͎ۂɕϊꂽoCgłB



	________________________________________________________________________

	LONG decodeVAGf(UBYTE *s, WORD *d, LONG p_len)



	decodeVAG֐̎ZłłB





EXA DECODER



	________________________________________________________________________

	LONG decodeXA(UBYTE *s, WORD *d, LONG s_len)



	ss_lenZN^XAf[^16bit linear PCM ɕϊ

	dɊi[܂BԂl͎ۂɕϊꂽoCgłB



	________________________________________________________________________

	LONG decodeXAf(UBYTE *s, WORD *d, LONG s_len)



	decodeXA֐̎ZłłB





Eӓ_



	GR[h̍ۂɕt16bit-32768`+32767

	-30720`+30720͈̔͂ɋIɐ؂̂ĂĂ܂B

	g`m[}CYꍇɂ93.75%ȉɂȂ

	𒴂镔NbvĂ܂܂B

	gȂǂ̒Pg`gȂǂ͗vӂłB



	XeIf[^ϊꍇ̓fR[hEGR[h

	EꂼƗĕێKv܂B

	XȀꍇ͓ōEƗŏĂ܂

	̃`lɃGR[hEfR[h邱Ƃ͂ł܂B





Ȇ



	ϐ̌^錾ȂǕsȓ_vxcodec.hQƂĂB

	EoO񍐂Ȃǂ mizoguchi_toshiyuki@cobra.konami ܂ł肢܂B





(eof)