Jump to content

    
Sign in to follow this  
AlexZabr

Имплементация Wavelet Decomposition на конкретных DSP

Recommended Posts

Кому-нить из уважаемых форумчан доводилось имплементоривать filter bank на основе wavelet decomposition на конкретных DSP чипах ?

Интересует сложность имплементации, в плане требования к ресурсам процессора/памяти.

Пример: предполагаемый subband decomposition на 32 частотных полосы (5-и уровневый) посредством DWT (discrete wavelet transform).

Какие аспекты практической реализации на DSP чипах ? Какая сложность реализации (в плане коль-ва вычислений) ?

 

Мой алгоритм успользует все это, в МАТЛАБе все хорошо и весело ибо не в реальном времени и используем встроенный в МАТЛАб (точнее в DSP toolbox) DWT, но когда дело касается реализации а реальной hardware - подозреваю могут быть серьезные проблемы...

 

Спасибо, Саша

Share this post


Link to post
Share on other sites
Кому-нить из уважаемых форумчан доводилось имплементоривать filter bank на основе wavelet decomposition на конкретных DSP чипах ?

Интересует сложность имплементации, в плане требования к ресурсам процессора/памяти.

Пример: предполагаемый subband decomposition на 32 частотных полосы (5-и уровневый) посредством DWT (discrete wavelet transform).

Какие аспекты практической реализации на DSP чипах ? Какая сложность реализации (в плане коль-ва вычислений) ?

 

Мой алгоритм успользует все это, в МАТЛАБе все хорошо и весело ибо не в реальном времени и используем встроенный в МАТЛАб (точнее в DSP toolbox) DWT, но когда дело касается реализации а реальной hardware - подозреваю могут быть серьезные проблемы...

 

Спасибо, Саша

 

Мне не доводилось это делать, но когда рылся в техасовских доках, нашел, что в CCS есть целая библиотека для работы с вейвлет преобразованиями (функции реализованы на ассемблере, для вызова из C):

//------------

void IMG_wave_decom_one_dim(short *in_data, short *wksp, int *wavename, int length, int level )

Description

One dimensional wavelet pyramid decomposition. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The decomposition output is stored in the same vector of input. The IMG_wave_decom_one_dim function calls the decomInplace assembly function. Input and output data format is Q16.0.

//------------

void IMG_wave_decom_two_dim(short **image, short *wksp, int width, int height, int *wavename, int level );

Description

Two dimensional wavelet pyramid decomposition. The wavelet filter coefficients are passed by the vector wavename. The width and height of the image should be divided by 2^level. The decomposed image is stored in the same matrix of in_data. The IMG_wave_decom_two_dim function calls three assembly functions: decomInplace, col2row and decomCol. Input and output data format is Q16.0.

//------------

void IMG_wave_recon_one_dim(short *in_data, short *wksp, int *wavename, int length, int level );

Description

One dimensional wavelet pyramid reconstruction. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The reconstruction output is stored in the same vector of input. The IMG_wave_recon_one_dim function calls the reconInplace assembly function. Input and output data format is Q16.0.

//------------

void IMG_wave_recon_two_dim(short **image, short *wksp, int width, int height, int *wavename, int level );

Description

Two dimensional wavelet pyramid reconstruction. The wavelet filter coefficients are passed by the vector wavename. The width and height of the image should be divided by 2^level. The reconstructed image is stored in the same matrix of in_data. The IMG_wave_recon_two_dim function calls three assembly functions: decomInplace, col2row and decomCol. Input and output data format is Q16.0.

//------------

void IMG_wavep_decom_one_dim(short *in_data, short *wksp, int *wavename, int length, int level );

Description

One dimensional wavelet packet decomposition. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The decomposition output is stored in the same vector of input. The IMG_wavep_decom_one_dim function calls the decomInplace assembly function. Input and output data format is Q16.0.

//------------

И ещё какие-то. Берите хелп и смотрите. Там есть данные о производительности.

Share this post


Link to post
Share on other sites
Мне не доводилось это делать, но когда рылся в техасовских доках, нашел, что в CCS есть целая библиотека для работы с вейвлет преобразованиями (функции реализованы на ассемблере, для вызова из C):

//------------

void IMG_wave_decom_one_dim(short *in_data, short *wksp, int *wavename, int length, int level )

Description

One dimensional wavelet pyramid decomposition. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The decomposition output is stored in the same vector of input. The IMG_wave_decom_one_dim function calls the decomInplace assembly function. Input and output data format is Q16.0.

//------------

void IMG_wave_decom_two_dim(short **image, short *wksp, int width, int height, int *wavename, int level );

Description

Two dimensional wavelet pyramid decomposition. The wavelet filter coefficients are passed by the vector wavename. The width and height of the image should be divided by 2^level. The decomposed image is stored in the same matrix of in_data. The IMG_wave_decom_two_dim function calls three assembly functions: decomInplace, col2row and decomCol. Input and output data format is Q16.0.

//------------

void IMG_wave_recon_one_dim(short *in_data, short *wksp, int *wavename, int length, int level );

Description

One dimensional wavelet pyramid reconstruction. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The reconstruction output is stored in the same vector of input. The IMG_wave_recon_one_dim function calls the reconInplace assembly function. Input and output data format is Q16.0.

//------------

void IMG_wave_recon_two_dim(short **image, short *wksp, int width, int height, int *wavename, int level );

Description

Two dimensional wavelet pyramid reconstruction. The wavelet filter coefficients are passed by the vector wavename. The width and height of the image should be divided by 2^level. The reconstructed image is stored in the same matrix of in_data. The IMG_wave_recon_two_dim function calls three assembly functions: decomInplace, col2row and decomCol. Input and output data format is Q16.0.

//------------

void IMG_wavep_decom_one_dim(short *in_data, short *wksp, int *wavename, int length, int level );

Description

One dimensional wavelet packet decomposition. The wavelet filter coefficients are passed by the vector wavename. The length of the input vector should be divided by 2^level. The decomposition output is stored in the same vector of input. The IMG_wavep_decom_one_dim function calls the decomInplace assembly function. Input and output data format is Q16.0.

//------------

И ещё какие-то. Берите хелп и смотрите. Там есть данные о производительности.

 

 

Большое спасибо, это уже что-то.

Буду рыться в хелпах и их онлайновких доках.

 

Еще раз премного благодарен,

Саша

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this