LINUX.ORG.RU

Сообщения Muxxxa

 

Оптимизация кода TCL

Форум — Development

Помогите оптимизировать следующий кусок кода. Операции (Haar-Wavelet-Transformation) проводятся над графическими файлами которые могут иметь довольно большой размер. Поэтому важна каждая миллисекунда..

set matrix ""
set matrix2 ""

set matrix [read $in]
close $in

for {set yy 0} {$yy < $y} {incr yy} {
	set mids ""
	set ints ""
	for {set xx 0} {$xx < $x} {incr xx 2} {
		set a  [ expr {$x * $yy + $xx} ]
		set b  [ expr {$a+1} ]
		set aa [ lindex $matrix $a ]
		set bb [ lindex $matrix $b ]
		set middle [ expr { [ expr {$aa + $bb} ] / 2 } ]
		set mids [concat $mids $middle]
		set int [ expr {$aa-$middle+$grey2} ]
		set ints [concat $ints $int]
	}
	set matrix2 [ concat $matrix2 $mids $ints ]
}

for {set xx 0} {$xx < $x} {incr xx} {
	for {set yy 0} {$yy < $y} {incr yy 2} {
		set a  [ expr {$x * $yy + $xx} ]
		set b  [ expr {$a + $x} ]
		set aa [ lindex $matrix2 $a ]
		set bb [ lindex $matrix2 $b ]
		
		set middle [ expr { [ expr {$aa + $bb} ] / 2 } ]
		set pos [ expr {$yy/2 * $x + $xx} ]
		lset matrix $pos $middle
				
		set int [ expr {$aa-$middle+$grey2} ]
		set pos [ expr {($yy/2+$y/2)*$x + $xx} ]
		lset matrix $pos $int
	}	
}

p.s. я только начал заниматся tcl, поэтому не ругайтесь если очень криво...

ЗАРАНЕЕ СПАСИБО!
Muxxxa
()

RSS подписка на новые темы