[FFmpeg-devel] a64 encoder 7th round

Bitbreaker/METALVOTZE bitbreaker
Tue Feb 3 15:22:21 CET 2009


> ldx $de00
> lda lut+0,x
> sta dest,y
> lda lut+1,x
> sta dest+64,y
> lda lut+2,x
> sta dest+128,y
> lda lut+3,x
> sta dest+192,y
> iny

Just tested something similar to reconstruct the "compressed" colorram. 
However it spoils of course my option of linear writing and thus things 
need to happen even faster as i write at the lower and upper end of the 
colorram area at the same time. It works out tightly however when i 
start 44 lines before screen ends. Writing endures until i enter the 
upper area again, but ends luckily fast enough (4 lines) before the last 
line of the first 0x100 block of colorram is displayed. So i have to 
take care that i cross no 0x100 border codewise and indexwise, as that 
would add extra cycles and thus trash display. I could however place the 
LUT into zeropage where no extar cycles apply on those conditions. Would 
make things more stable, but wastes 64 nice favourite places to store 
values when running out of registers ;-)
Finally 112 lines are free now, what gives me a better feeling when i 
use 2 vsync. However i forgo on all colors in colram being useable in 
future. Still, the colors for the grayscale gradient can now be choosen 
freely, just 3 registers and the 64 byte LUT need to be set with 
appropriate values for that. So this information is not anymore 
inherently included into the encoded frames. Framesize is now 0x700 
bytes, they load however nearly like 0xa00 bytes.

Kindest regards,

Toby

-- 
      style)KURVE - Fotografie mit Biss.
   www.style-kurve.de - info at style-kurve.de
Tobias Bindhammer, Uhlandstrasse 8, 89278 Stra?
        		01577/1751761




More information about the ffmpeg-devel mailing list