Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Ассемблер
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7137
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 139
Поблагодарили 1175 раз(а) в 732 сообщ.
Сообщение: #16
RE: Ассемблер
Можешь переписать soft SPI на ASM, конечно врятли это особо ускорит процесс, но все же не помешало бы мне кажется.
Так же вот еще пара задач для ffmpeg плеера в DS:

Деление буфера (это аудио, AICA не умеет играть такие, ей нужны раздельные каналы):
PHP код:
int16 *sep_buffer[2] = {NULLNULL};

void sep_data(void *bufferint len) {

    
register int16 *bufsrc, *bufdst_left, *bufdst_right;
    
register int cnt;
    
    
cnt len 2;
    
bufsrc = (int16*)buffer;
    
bufdst_left sep_buffer[0];
    
bufdst_right sep_buffer[1];
    
    while(
cnt) {
        *
bufdst_left++ = *bufsrc++;
        *
bufdst_right++ = *bufsrc++;
        
cnt -= 2;
    }


Конвертация YUV420P в UYVY422:
PHP код:
void yuvtex(uint16 *tbuf,int tstride,unsigned width,unsigned height,uint8 *ybuf,int ystride,uint8 *ubuf,int ustride,uint8 *vbuf,int vstride) {
    
int h height/2;
    
uint8 uv;

    do {
        
uint8 *uptr,*vptr,*yptr,*yptr2;
        
uint8 *tex,*tex2;
        
int w width/2;

        
tex  = (uint8*)tbuftbuf+=tstride;
        
tex2 = (uint8*)tbuftbuf+=tstride;
        
yptr  ybufybuf +=ystride;
        
yptr2 ybufybuf +=ystride;
        
uptr ubufubuf +=ustride;
        
vptr vbufvbuf +=vstride;
        do {
            
= *uptr++;
            
= *vptr++;
            
tex[0] = u;
            
tex[1] = *yptr++;
            
tex[2] = v;
            
tex[3] = *yptr++;
            
tex2[0] = u;
            
tex2[1] = *yptr2++;
            
tex2[2] = v;
            
tex2[3] = *yptr2++;
            
tex+=4;
            
tex2+=4;
        } while(--
w);
    } while(--
h);
}

            
yuvtex(txr->backbuftxr->widthcodec->widthcodec->height,
                
frame->data[0], frame->linesize[0],
                
frame->data[1], frame->linesize[1],
                
frame->data[2], frame->linesize[2]
            ); 

Либо если получится, то можешь попробовать не конвертировать в UYVY422, а просто поделить YUV420P на макроблоки размером 16х16 пикселей. Тогда бы я смог бы использовать хардварный конвертер что есть в PVR (он зараза не кушает ее как есть).
Код:
        ++++++-----------------
        ++++++-----------------
        ++++++-----------------
        -----------------------
        -----------------------

В идеале во всех задачах нужно задействовать кэш SH4, так как они ОЧЕНЬ чувствительны к производительности.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 11.09.2013 в 13:55, отредактировал пользователь SWAT.)
11.09.2013 13:28
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Сообщения в этой теме
Ассемблер - zzPSIXzz - 16.01.2011, 20:19
RE: Ассемблер - sc_maxim - 16.01.2011, 23:43
RE: Ассемблер - Rio - 16.01.2011, 23:58
RE: Ассемблер - zzPSIXzz - 17.01.2011, 01:03
RE: Ассемблер - sc_maxim - 17.01.2011, 01:17
RE: Ассемблер - Rio - 17.01.2011, 01:33
RE: Ассемблер - zzPSIXzz - 17.01.2011, 02:53
RE: Ассемблер - sc_maxim - 17.01.2011, 03:05
RE: Ассемблер - Rio - 19.01.2011, 16:34
RE: Ассемблер - sc_maxim - 09.09.2013, 23:31
RE: Ассемблер - SWAT - 10.09.2013, 07:16
RE: Ассемблер - sc_maxim - 10.09.2013, 10:18
RE: Ассемблер - sc_maxim - 10.09.2013, 22:07
RE: Ассемблер - SWAT - 11.09.2013, 08:51
RE: Ассемблер - sc_maxim - 11.09.2013, 09:10
RE: Ассемблер - SWAT - 11.09.2013 13:28
RE: Ассемблер - sc_maxim - 11.09.2013, 22:09
RE: Ассемблер - uncle - 19.09.2013, 17:34
RE: Ассемблер - SWAT - 19.09.2013, 20:46
RE: Ассемблер - uncle - 21.09.2013, 12:04
RE: Ассемблер - uncle - 21.09.2013, 14:10
RE: Ассемблер - SWAT - 23.09.2013, 15:24
RE: Ассемблер - uncle - 25.09.2013, 12:34
RE: Ассемблер - SWAT - 25.09.2013, 15:27
RE: Ассемблер - uncle - 25.09.2013, 15:35
RE: Ассемблер - SWAT - 26.09.2013, 08:18
RE: Ассемблер - uncle - 26.09.2013, 13:53
RE: Ассемблер - SWAT - 27.09.2013, 07:04
RE: Ассемблер - MetalliC - 27.09.2013, 14:11
RE: Ассемблер - uncle - 27.09.2013, 12:58
RE: Ассемблер - uncle - 27.09.2013, 15:30
RE: Ассемблер - MetalliC - 27.09.2013, 18:11
RE: Ассемблер - SWAT - 29.09.2013, 11:02
RE: Ассемблер - MetalliC - 29.09.2013, 14:25
RE: Ассемблер - SWAT - 29.09.2013, 19:27
RE: Ассемблер - uncle - 02.10.2013, 19:00
RE: Ассемблер - SWAT - 03.10.2013, 13:28
RE: Ассемблер - uncle - 03.10.2013, 17:34
RE: Ассемблер - SWAT - 03.10.2013, 21:00
RE: Ассемблер - SWAT - 10.10.2013, 12:01

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)