Автор Тема: Мы победили :-)  (Прочитано 35371 раз)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #30 : Апрель 18, 2013, 05:37:25 pm »
Чуйствую valexey скоро станет весьма известным. Потом опубликует на хабре статью про оберон и станет внезапно самым известным оберонщегом в рашке. :D
Ну, до известности info21 мне прыгать и прыгать :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Мы победили :-)
« Ответ #31 : Апрель 18, 2013, 06:03:01 pm »
Чуйствую valexey скоро станет весьма известным. Потом опубликует на хабре статью про оберон и станет внезапно самым известным оберонщегом в рашке. :D
Ну, до известности info21 мне прыгать и прыгать :-)
:) Не стоит прыгать на опытного "боксера".. к тому же вы в разных весовых категориях...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #32 : Апрель 18, 2013, 06:13:30 pm »
Чуйствую valexey скоро станет весьма известным. Потом опубликует на хабре статью про оберон и станет внезапно самым известным оберонщегом в рашке. :D
Ну, до известности info21 мне прыгать и прыгать :-)
:) Не стоит прыгать на опытного "боксера".. к тому же вы в разных весовых категориях...
У нас скорее даже виды спорта разные :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #33 : Апрель 18, 2013, 09:02:03 pm »
Чуйствую valexey скоро станет весьма известным. Потом опубликует на хабре статью про оберон и станет внезапно самым известным оберонщегом в рашке. :D
Ну, до известности info21 мне прыгать и прыгать :-)
info21 мало кто знает, а вот до Сергея Губанова и правда долго тянуться придётся )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #34 : Апрель 19, 2013, 07:52:44 am »
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #35 : Апрель 22, 2013, 11:28:38 am »
Опубликован отчет от организаторов. http://hackday.ru/events/hackday-25/report
Там в основном перечень и описание доплывших проектов, номинации и статистика.

Примечательно что среди победителей в разных номинациях нет ни одного веб-проекта. И это радует.
« Последнее редактирование: Апрель 22, 2013, 11:30:11 am от valexey_u »
Y = λf.(λx.f (x x)) (λx.f (x x))

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Мы победили :-)
« Ответ #36 : Апрель 22, 2013, 12:47:43 pm »
А что за проблемы были с производительностью блюра? Оно же на  640 * 480 = 307'200 должно со скоростью света летать?..  ???

for (int n = 1; n < N; n++)
{

  for (int y = 1; y < 639; y++)
  {
    for (int x = 1; x < 479; x++)
    {
      b[y, x] = 0.25 * (a[y - 1, x] + a[y + 1, x] + a[y, x - 1] + a[y, x + 1]);
    }
  }

  for (int y = 1; y < 639; y++)
  {
    for (int x = 1; x < 479; x++)
    {
      a[y, x] = 0.25 * (b[y - 1, x] + b[y + 1, x] + b[y, x - 1] + b[y, x + 1]);
    }
  }

}

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Мы победили :-)
« Ответ #37 : Апрель 22, 2013, 12:52:48 pm »
Ну, то есть наоброт, y < 479, а x < 639.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #38 : Апрель 22, 2013, 01:05:21 pm »
А что за проблемы были с производительностью блюра? Оно же на  640 * 480 = 307'200 должно со скоростью света летать?..  ???

for (int n = 1; n < N; n++)
{

  for (int y = 1; y < 639; y++)
  {
    for (int x = 1; x < 479; x++)
    {
      b[y, x] = 0.25 * (a[y - 1, x] + a[y + 1, x] + a[y, x - 1] + a[y, x + 1]);
    }
  }

  for (int y = 1; y < 639; y++)
  {
    for (int x = 1; x < 479; x++)
    {
      a[y, x] = 0.25 * (b[y - 1, x] + b[y + 1, x] + b[y, x - 1] + b[y, x + 1]);
    }
  }

}
У нас блюр был довольно сильный - диаметр 40. Причем он делался практически по определению эффекта боке, то есть за один проход. Не оптимизированный алгоритм кушал O(W*H*D^2), оптимизированный O(W*H*D). Я затрудняюсь прямо сейчас пересчитать какая будет сложность твоего алгоритма для достижения той же силы эффекта. То есть надо как-то пересчитать N в D.

Многопроходный блюр, как у тебя, надо будет попробовать. Может даст или лучший эффект, или лучшую производительность.
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #39 : Апрель 22, 2013, 01:13:40 pm »
Да, и нужно учесть еще один нюанс - это все должно было быстро работать на ультрабуке, то есть на системе с порезанными частотами и хреновым охлаждением (из за чего оно склонно еще понижать частоту процессора).
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Мы победили :-)
« Ответ #40 : Апрель 22, 2013, 01:15:29 pm »
а что там считать то..  t=2*N*W*H*d - здесь d -время вычисления элемента массивов a,b

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #41 : Апрель 22, 2013, 01:17:18 pm »
а что там считать то..  t=2*N*W*H*d - здесь d -время вычисления a(b) [j]
Я же уточнил - сложность в переводе N в D, где D - диаметр ядра свертки в нашем блюре, а N это число проходов в блюре Сергея. То есть чтобы эффект был если не эквивалентен, то по крайней мере максимально похож.
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Мы победили :-)
« Ответ #42 : Апрель 22, 2013, 01:29:31 pm »
а что там считать то..  t=2*N*W*H*d - здесь d -время вычисления a(b) [j]
Я же уточнил - сложность в переводе N в D, где D - диаметр ядра свертки в нашем блюре, а N это число проходов в блюре Сергея. То есть чтобы эффект был если не эквивалентен, то по крайней мере максимально похож.
не надо переводить.. достаточно проверить картинку при N=sqrt(D/2)~5

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Мы победили :-)
« Ответ #43 : Апрель 22, 2013, 01:33:06 pm »
а что там считать то..  t=2*N*W*H*d - здесь d -время вычисления a(b) [j]
Я же уточнил - сложность в переводе N в D, где D - диаметр ядра свертки в нашем блюре, а N это число проходов в блюре Сергея. То есть чтобы эффект был если не эквивалентен, то по крайней мере максимально похож.
не надо переводить.. достаточно проверить картинку при N=sqrt(D/2)~5
Дык да. Но для этого мне надо в код лезть, камеру расчехлять. Я не могу прямо сейчас проверить. Потому и написал :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

DddIzer

  • Гость
Re: Мы победили :-)
« Ответ #44 : Апрель 22, 2013, 01:58:19 pm »
не надо переводить.. достаточно проверить картинку при N=sqrt(D/2)~5
что- то день не верный... при N=D/2=20  должна наблюдаться сходная  с вашей производительность алгоритма Сергея
(если ваши d имеют одинаковую вычислительную сложность), нужно оценить только качество картинки.