The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Первый выпуск dav1d, декодировщика AV1 от проектов VideoLAN и FFmpeg

11.12.2018 21:44

Сообщества VideoLAN и FFmpeg опубликовали первый выпуск библиотеки dav1d с реализацией альтернативного свободного декодировщика формата кодирования видео AV1. Выпуск 0.1 позиционируется как первая версия, пригодная для повседневного использования. Код проекта написан на языке Си (C99) с ассемблерными вставками (NASM/GAS) и распространяется под лицензией BSD. Реализована поддержка архитектур x86, x64, ARMv7 и ARMv8, и операционных систем Linux, Windows, macOS, Android и iOS.

Библиотека dav1d поддерживает все возможности AV1, включая расширенные виды субдискретизации и все заявленные в спецификации параметры управления глубиной цвета (8, 10 и 12 бит). Работа библиотеки протестирована на большой коллекции файлов в формате AV1. Ключевой особенностью dav1d является ориентация на достижение максимально возможной производительности декодирования и обеспечение качественной работы в многопоточном режиме.

Плюсом dav1d также является более компактная реализация: dav1d включает в 10 раз меньше кода по сравнению с libaom, а размер бинарного файла меньше в три раза. В процессе декодирования dav1d потребляет в 4 раза меньше памяти.

Из последних достижений проекта отмечается добавление поддержки инструкций SSSE3 для ускорения работы на старых системах и реализация ассемблерных оптимизаций для архитектуры ARMv8 (в однопоточном режиме libaom и dav1d на устройствах ARMv8 пока показывают примерно одинаковую производительность, но при многопоточной работе лидирует dav1d). Ведутся эксперименты по задействованию шейдеров для ускорения некоторых операций.

Напомним, что видеокодек AV1 разработан альянсом Open Media (AOMedia), в котором представлены такие компании, как Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN и Realtek. AV1 позиционируется как общедоступный и не требующий оплаты отчислений свободный формат кодирования видео, который заметно опережает H.264 и VP9 по уровню сжатия. Для всего диапазона протестированных разрешений в среднем AV1 обеспечивает тот же уровень качества при уменьшении битрейта на 13% по сравнению с VP9 и на 17% по сравнению с HEVC. На высоких битрейтах выигрыш увеличивается до 22-27% для VP9 и до 30-43% для HEVC. В тестах Facebook AV1 обогнал по уровню сжатия main profile H.264 (x264) на 50.3%, high profile H.264 на 46.2%, а VP9 (libvpx-vp9) на 34.0%.

  1. Главная ссылка к новости (http://www.jbkempf.com/blog/po...)
  2. OpenNews: VideoLAN и FFmpeg разработали новый декодировщик для видеокодека AV1
  3. OpenNews: В Firefox 63 появится поддержка видеокодека AV1
  4. OpenNews: Mozilla и Xiph развивают реализацию видеокодека AV1 на языке Rust
  5. OpenNews: Результаты тестирования AV1 в Facebook. Новый формат JPEG XS
  6. OpenNews: Увидел свет первый выпуск открытого видеокодека нового поколения AV1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49763-av1
Ключевые слова: av1, dav1d, videolan, ffmpeg
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (72) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 23:00, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > библиотека заметно опережает штатный декодировщик libaom

    Стоит уточнить что опережает оно только libaom 1.0 релизнутый при царе горохе. А текущая версия их кода - и близко не опережает текущую версию libaom, так что маркетинговый булщит в новости - засчитан.

     
     
  • 2.4, Аноним (2), 23:01, 11/12/2018 [^] [^^] [^^^] [ответить]  
  • –5 +/
    А, еще и система сборки мезон, требует гадский пихтон. Тоже мне, сишный проект, блин. Маркетинг и хипстота во все поля.
     
     
  • 3.7, qcgg (?), 23:13, 11/12/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    meson сейчас майнстримная система сборки. То, что они решили использовать meson, только плюс.
     
     
  • 4.24, Аноним (24), 08:45, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Странно, а им собирается что-то кроме частей Gnome? Штука хорошая, там пыхтон как нельзя кстати, но что-то я ее не вижу во многих проектах.
     
     
  • 5.39, Аноним (39), 11:46, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какой-то манагер в RH наслушался свеженанятых пыхтонрастмакак и принял мегарешение. Карманные проекты редхата и взяли под козырек. Сразу весь "майнстрим" и спалился, оптом.
     
  • 5.45, Crazy Alex (ok), 12:18, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ну вот mesa на него переползла, например
     
     
  • 6.65, Владимир (??), 23:58, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ага, только на мезон они переползли с Autotools. ЛЮБАЯ система сборки будет лучше, чем это, конечно, они будут ее нахваливать.
     
     
  • 7.68, нах (?), 17:57, 13/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    если вам не нужна переносимость и линукс ваш новый стандарт - тогда да, любая другая лучше
    (99% использования autotools - не по назначению, а просто неосиляторы makefile, результаты всех миллионов тестов отправляются ими в /dev/null, они все равно могли бы работать только в линуксе и только с ведром 4.19 с наираспоследними версиями всего)

    ну ничего, вот парень из гугляпа знает жисть - жаба для сборки единственного с++ файла - вот как надо! Главное - никогда не читать документацию, копипаста со стековерфлоу наше всьо.

    Что там сейчас модно - а, точно, meson. Вот и подходящий вопрос, сейчас только имя проекта поменяю...

     
  • 4.38, Аноним (39), 11:45, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > meson сейчас майнстримная система сборки.

    Я не знаю для кого оно там майнстримное, кроме шестерок редхата и визгливых бидономакак. На лично мое мнение - может убираться откуда пришло.

    > То, что они решили использовать meson, только плюс.

    Скорее, характеристика авторов прожекта. Ну и с практической точки зрения - вот ты это будешь билдить, майнстримщик? А потом тестить и гонять? С багрепортами и проч? Я бы погонял что-то такое "сам по себе" - но с такими билдсистемами и гнилым маркетингом - пожалуй пешком постою.

     
  • 3.16, DerRoteBaron (ok), 02:25, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Лучше cmake или meson и более-менее нормальная воспроизводимость сборки, чем портянки на баше для генерации make-портянок, которые фейлятся не с разрешимыми или хотя бы разумными ошибками, а с чем-то неадекватным из-за неверных аргументов cc или ld
     
     
  • 4.36, Аноним (36), 10:47, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Забавно, как же тогда ядро собирается, без cmake и meson? Или они ещё не знают, что у них всё плохо и надо брючки подвернуть?
     
     
  • 5.40, Аноним (-), 11:58, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Более того - meson еще и не умеет генерить make файлы. Только какую-то НЕХ для другой НЕХ под названием Ninja. Поэтому предлагается вкатить еще и вот это вот. С аргументом что он дескать быстрее.

    Особенно прикольно когда этим козыряют проекты из 5 файлов. Там конечно очень важно, 100 миллисекунд проект собирается, или целых 120. Так что вот ща нинзю побежим разучивать, дескать.

    Впрочем, в чемпионате идиотии всех победил парень из гугла. Этот гений рационального мышления воткнул что-то на яве (gradle, чтоли) для билдовки программы из... (барабанная дробь!) ОДНОГО c++ файла! Народ повертел пальцем у виска и решил что gcc -O3 file.cpp значительно проще чем установка явы со всеми прибамбасами :)

     
     
  • 6.57, Аноним (57), 19:47, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Впрочем, в чемпионате идиотии всех победил парень из гугла. Этот гений рационального мышления воткнул что-то на яве (gradle, чтоли) для билдовки программы из... (барабанная дробь!) ОДНОГО c++ файла!

    доставьте ссылку, пожалуйста.

     
  • 6.60, Андрей (??), 21:21, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Впрочем, в чемпионате идиотии всех победил парень из гугла.

    В Debian не могут больше актуализировать пакет с языком программирования Scala. https://github.com/scala/scala/archive/v2.12.8.tar.gz
    Архивчик занимает всего ничего: 6.5 MB

    А чтобы собрать стала требоваться система сборки sbt: https://www.scala-sbt.org/download.html
    Архивчик sbt-1.2.7.tgz занимает... 45 MB !!!

    Что же нужно, чтобы собрать такую джава-энтерпрайзную систему сборки...

     
     
  • 7.64, КГБ СССР (?), 23:25, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ловлю фейспалмы от чтения этого треда. Жгите ещё, пацаны!
     
  • 3.55, нах (?), 15:40, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    мэйкфайлы руками пишут лохи, автоконф для дедов, симейк слишком сложно, линукс ваш новый стандарт!

     
  • 3.62, Аноним (62), 22:36, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Тулкитодpoчеры должны страдать.
     
  • 3.74, Аноним (74), 11:49, 28/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А автолулзы требуют гадский perl. А plain Makefile больше не пишут.
     
  • 2.22, Аноним (22), 06:59, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А текущая версия их кода - и близко не опережает текущую версию libaom

    При наличии AVX2 таки опережает, где-то в два раза. Но без AVX2 где-то в те же два раза отстаёт, SSSE3 не очень помогает.

     
     
  • 3.23, Аноним (23), 07:59, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    SSE дорожка сырая недопилка. Увы и ах пока что беспоелезн на всем старше Haswell.
     
  • 3.41, Аноним (-), 12:05, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > При наличии AVX2 таки опережает,

    Пруф? А то у них прямо на сайте же и написано что отстает, потому что дескать оптимизаций еще нет. Тем временем в libaom оптимизаций навернули. В основном AVX2 и SSE4_1 для тех кто поновее и SSE2 для тех кто постарее. И немного SSSE3.

    > SSSE3 не очень помогает.

    Вообще это от много чего зависит. Прежде всего от кода. В ряде случаев AVX2 варианты оказываются тормознее других SSE подвидов. А иногда быстрее. А иногда примерно однофигственно. Раз на раз не приходится. В libaom несколько раз забивали на AVX2 фрагменты в нескольких местах, после того как все попытки сделать их быстрее чем уже имевшиеся варианты проваливались. Недавно как раз какой-то кусочек на AVX2 не смог SSSE3 с рядом размеров блоков уделать, хоть там что.

     
     
  • 4.53, Аноним (22), 14:47, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    На сегодняшних master-ветках:


    $ ffmpeg -i av1-720p.webm -map 0:v -f null -
    ...
    [libaom-av1 @ 0x5619a9a00f40] 1.0.0-1028-g78e6b2cb8
    ...
    frame= 3745 fps= 62 q=-0.0 Lsize=N/A time=00:02:36.19 bitrate=N/A speed=2.57x

    $ ffmpeg -c:v libdav1d -i av1-720p.webm -map 0:v -f null -
    ...
    [libdav1d @ 0x559e6bac2700] libdav1d 0.1.0-1-g73067e5
    ...
    frame= 3745 fps=168 q=-0.0 Lsize=N/A time=00:02:36.19 bitrate=N/A speed=   7x


    Проц — haswell.

     
  • 4.73, Ванёк (?), 14:34, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По опыту оптимизаций можно сказать, что зачастую оптимизированный код, в котором вообще не используется AVX/SSE, оказывается быстрее или на уровне кода с использованием AVX/SSE по целому ряду причин.
     

  • 1.3, Семён (?), 23:00, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Вот только лицензия BSD огорчает.
     
     
  • 2.17, анон (?), 02:32, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Не думал что доживу до подобных комментариев.
     
  • 2.26, Аноним (24), 08:48, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Отдавать свой продукт корпорастам или нет - это дело программиста.
    Тебе дали свободу делать с этим все, что угодно, что не так?
     
     
  • 3.31, Аноним (31), 09:44, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Такое впечатление что разработчики VideoLAN и ffmpeg не корпорасты, а работяги, которые каждый вечер после после смены на заводе и врубают vim и кодят для души.
     
     
  • 4.44, Аноним (44), 12:15, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Такое впечатление что разработчики VideoLAN и ffmpeg не корпорасты, а работяги, которые
    > каждый вечер после после смены на заводе и врубают vim и кодят для души.

    А судя по бложикам и кодингу - в vlc те еще околокорпоративные фрукты. Поэтому то гнилым маркетингом размахивать лезут, то какие-то хипста-решения вот вываливают, то критиканят VP9 размахивая тем что h.264 стандарт, наплевывая на проблемы окружающих с тем что он запатентован и с тем что полпланеты доят, так что возникает ощущение что ребятки порой вообще интересы своих работодателей продавливают, а vlc - так, побочный продукт, чтоли.

     

  • 1.5, Ъ (?), 23:05, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +20 +/
    Выбор цвета столбцов в гистограмме - уровень бог
     
     
  • 2.18, анон (?), 02:33, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Синий явно лишний, почему бы не сделать его каким-нибудь приятным, например зеленым? ))
     
     
  • 3.51, Аноним (51), 13:00, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Почему бы вам обоим мониторы не подстроить? Ну, или если не поможет - к окулисту не сходить?
     
     
  • 4.72, grsec (ok), 19:26, 14/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Стало страшно смотреть в твой подстроенный монитор.
     

  • 1.6, НяшМяш (ok), 23:09, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Ведутся эксперименты по задействованию шейдеров для ускорения некоторых операций.

    Всегда было интересно, почему не сделать кодер/декодер полностью на чём-то вроде OpenCL/Vulkan. Проприетарные и/или платные реализации есть, а вот в опенсорсе реализаций не встречал. Тем более, что AV1 - типа кодек будущего и я не вижу препятствий сделать полноценную реализацию на том же Vulkane.

     
     
  • 2.9, VINRARUS (ok), 23:33, 11/12/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >я не вижу препятствий сделать полноценную реализацию на том же Vulkane.

    Сделай. Или заставь других более убедитильными доводами.

     
  • 2.21, Вулкан (?), 06:29, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому что на GPU нетривиально написать производительный код, в котором много зависимостей по данным. Ну или когда на каждый пиксель надо читать много других пикселей. Проприетарные энкодеры (если речь про NVENC), и те, для которых есть опенсорсные драйвера (Intel VAAPI, AMD VCE) - это отдельный аппаратный блок с весьма ограниченными возможностями программирования.
     
     
  • 3.25, Ю.Т. (?), 08:47, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Даже невозможно. Производительность окажется ограниченной моделью обработки.
    (имея в виду, что GPU это паралл.-выч. оборудование по модели с общей памятью )
     
  • 2.30, Странный факт (?), 09:42, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Приколу ради запускал opencl реализацию перекодирования фильмов в mp4 для ffmpeg.
    Так софтварная на 1800 рязане обгоняет, почему-то OpenCl для RX 560 (хотя последний и загружен на 6-7%). Долго думал...
     
  • 2.32, Ydro (?), 10:01, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    "Эталонный вариант", если можно так выразится не делается с привязкой к сторонним технологиях по причине дальновидности. Т.к. AV1 - "типа кодек будущего", то соответственно нацелен на встраивание в оборудование для широкого потребления: телевизоры, тв-приставки, спутниковые тюнеры, где нет  OpenCL/Vulkan.
     
     
  • 3.37, Аноним (31), 11:12, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Сейчас в каждом новом SOC включая бюджетные есть OpenCL/Vulkan. Через пару лет чипы без оного придется поискать в дикой природе.
     
     
  • 4.43, Аноним (-), 12:12, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Сейчас в каждом новом SOC включая бюджетные есть OpenCL/Vulkan.

    Таки не в каждом. В половину дешевых чипов до сих пор мали галимый пихают. Потому что лицензировали при царе горохе, что-то новое лицензировать жаба давит, а андроид кой-как с GL ES все же работает - ну и оки.


     
  • 2.42, Аноним (-), 12:11, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну вот представь себе, есть у тебя грейдер Он может тонну грунта за раз свороти... большой текст свёрнут, показать
     

  • 1.8, Ivan_83 (ok), 23:25, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С libaom на райзен 2700х элекардовское 4к видео лагает дико и жрёт только 4 ядра.
     
     
  • 2.46, Аноним (44), 12:18, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > С libaom на райзен 2700х элекардовское 4к видео лагает дико и жрёт
    > только 4 ядра.

    А он у тебя какой версии? Libaom в смысле. Если 1.0 то это тухляк невероятный по состоянию на сейчас.

     
     
  • 3.56, Ivan_83 (ok), 17:57, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    aom-1.0.0.1023
    он у нас во фряхе каждую неделю по два раза обновляется %)
     

  • 1.10, lucentcode (ok), 23:44, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Годная новость. Софтовый декодер будут и дальше совершенствовать, и скоро он станет юзабельным. А вот чипсеты для мобильных устройств с харварной поддержкой завезут, вероятно, не скоро.
     
     
  • 2.29, Аноним (29), 09:39, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Например, в следующем поколении Снэпдрагонов (через год).
     
     
  • 3.75, Аноним (75), 23:48, 04/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Завезли проверяйте в 888
     

  • 1.11, КГБ СССР (?), 23:48, 11/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Код проекта написан на языке Си (C99) с ассемблерными вставками (NASM/GAS)

    А что, на пихтоне и жлобоскрипте такое написать не получится? Странно. А в телевизоре^W интернете сказали, что браузер — это новая универсальная платформа для прогрессивных приложений. Даже пример показали: прогрессивное веб-приложение https://squoosh.app/ (а вот хакер, скреатививший шедевр: avatars3.githubusercontent.com/u/7694752 ).

     
     
  • 2.12, Анонимчжан (?), 23:58, 11/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    говорят что можно, только скорость обработки никто не отменял. си побыстрее будет раза в 2, а то и в 3 в данном случае. низкоуровневые языки  это вам не просто так)) хотя про питон не скажу ничего плохого. там где нужен он оч хорош. а там где нужна большая скорость обработки лучше компилируемыми. и си тут как раз в тему. можно еще дельфи вспомнить. но что то я про него в последнее время совсем мало слышу.
     
     
  • 3.13, КГБ СССР (?), 00:01, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да я шучу. :)

    Думаю, что в данном случае на С (и с ассемблерными вставками) будет быстрее на два-три порядка, а не в два-три раза. :)

     
  • 3.20, leap42 (ok), 05:57, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > си побыстрее будет раза в 2, а то и в 3 в данном случае

    лол, 2-3...

    js помедленнее Си будет в 2-10 раз (зависит от задачи), python3 примерно в 15-20 раз

     
     
  • 4.27, Аноним (24), 08:51, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нихрена, JS медленнее PyPy. Уточняйте интерпретатор пожалуйста.
     
  • 3.59, IdeaFix (ok), 20:51, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и стал Си языком низкого уровня.... а у меня в зачетке была строчка 'Программирование на "ЯВУ"'
     
     
  • 4.61, Ю.Т. (?), 21:22, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот и стал Си языком низкого уровня.... а у меня в зачетке
    > была строчка 'Программирование на "ЯВУ"'

    Всё, что на вид достаточно похоже на человеческий (английский) язык, это ЯВУ по ГОСТу. ))

     
     
  • 5.63, Аноним84701 (ok), 22:55, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Вот и стал Си языком низкого уровня.... а у меня в зачетке
    >> была строчка 'Программирование на "ЯВУ"'
    > Всё, что на вид достаточно похоже на человеческий (английский) язык, это ЯВУ по ГОСТу. ))

    Для "когнитивного диссонансу" можно вспомнить HLA

    HLA (High Level Assembly, от автора "The Art of Assembly Language")



    program cmdline;
    #include( "stdio.hhf" );
    #include( "args.hhf" );

    static
        s:string;    
    begin cmdline;
        // Grab the whole command line and print it:
        arg.CmdLn();
        stdout.put( "Command line = '", (type string eax), "'" nl );

        // Display the number of command line parameters:
        arg.c();
        stdout.put( "argc=", (type int32 eax ), nl );
        // Print each of the individual command line parmeters:
        
        mov( eax, ecx );



    :)

    Хотя в принципе, все более-менее известные (MASM/TASM/NASM/YASM/FASM) имели кучу высокоуровневых примочек (чего только стоит макросы LOCAL var1,var2 , вместо "православных" [ebp-x], [ebp-y]).

    У MASM/TASM макросы позволяли писать такое:



    .while GetMessage(ADDR msg, 0,0,0)
    .if !TranslateAccelerator(hwnd, hAccel, ADDR msg)
        invoke TranslateMessage, ADDR msg
        invoke DispatchMessage, ADDR msg
    .endif
        .endw

    Или довольно небезызвестное "uses REG":



    new_explosion proc uses edi edi from_x:dword, from_y:dword
    LOCAL color:DWORD


    и вроде-как-ассемблер-а-не-компилятор собирал сам весь стэкфрейм, вставлял автоматически PUSH edi/esi вначале и POP EDI/ESI; LEAVE; RETN N перед каждым (простым) ret  (для которого им же генерировалось правильный N).
    В общем, "Cи с регистрами".

     
     
  • 6.69, Ю.Т. (?), 21:52, 13/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Вот и стал Си языком низкого уровня.... а у меня в зачетке
    >> Всё, что на вид достаточно похоже на человеческий (английский) язык, это ЯВУ по ГОСТу. ))
    > Для "когнитивного диссонансу" можно вспомнить HLA
    > Хотя в принципе, все более-менее известные (MASM/TASM/NASM/YASM/FASM) имели кучу высокоуровневых

    Вообще любой ассемблер это содержал(-ит), имея в виду что ассемблер это автокод плюс расширения, и вот они как раз "ВУ".
    Даже на ДВК или ЕС ЭВМ. ))

     
  • 6.70, Акакжев (?), 13:28, 14/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Для "когнитивного диссонансу"

    http://flatassembler.net/docs.php?article=fasmg

    What is flat assembler g?

    ...
    This is a bare engine that by itself has no ability to recognize and encode instructions of any processor, however it has an ability to become an assembler for any CPU architecture.
    ...

    Да, Томаш созрел.

     
  • 2.14, Crazy Alex (ok), 00:02, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и нахрена заведомую чушь нести? Всему своё место. Тут, вон, тоже на ассемблере не всё пишут, а по необходимости.

    Веб-приложение, кстати, тоже так сделано - UI на HTML/JS, а для тяжёлой работы использует вполне себе сишные кодеки - WebAssembly в помощь :-) Правда, работать они будут в несколько раз медленнее натива, потому что в WebAssembly поддержку SSE и многопоточность до сих пор не завезли, но там, где оно не нужно - скорость от нативно скомпилированных сей отличается меньше чем вдвое.

     
     
  • 3.15, Аноним (15), 01:57, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Никто и не сомневался что ваш вебассембли не взлетит.
     
     
  • 4.19, Crazy Alex (ok), 03:47, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, он не то чтобы мой... Просто из вебовских костылей он, пожалуй, наиболее явный, логичный и последовательный. А фичи в него постепенно подвозят, и всякие SSE - штуки приятные, но нужные отнюдь не всем.
     
     
  • 5.66, Интересно (?), 17:07, 13/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Как можно считать логичным приблуду для веба не умеющую взаимодействовать ни с сетью ни с пользователем?
     
     
  • 6.71, Crazy Alex (ok), 17:32, 14/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Так из них никто напрямую не умел за исключением браузерных плагинов (не к ночи будь помянуты с их дырами). Но это, как минимум, шустро и бескостыльно считает и не прибито к конкретному ЯП.

    А бирджи для взаимодействия генерируются автоматом, тем же emscripten. И это примерно последнее место, где там возникают проблемы. Ну и планы на что-то более нативное у них есть, и судя по текущей истории - шуршат они неспешно, но планомерно, что лично мне нравится гораздо больше, чем странные шатания в собственно джаваскриптовой части.

     
  • 2.33, Странный факт (?), 10:03, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >А что, на пихтоне и жлобоскрипте такое написать не получится?

    С декодирование в облаке на Амазоне - Любой каприз за Ваши деньги. :)

    P.S. Этак скоро до того дойдет - чтоб фильм скачанный с Ютуба перекодировать, придется кластер поднимать.

     
     
  • 3.48, Аноним (44), 12:22, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > С декодирование в облаке на Амазоне - Любой каприз за Ваши деньги. :)

    А что, ты потом результат декодирования еще и прокачать сможешь? В реальном времени? Или куда декодированное девать потом предлагается?

    А то весь пойнт aom - в том чтобы меньше бандвиза по сети качать. А если нежатое видео по сети гнать... зачем вам тогда aom?! :D

     
     
  • 4.67, Аноним (67), 17:11, 13/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Имелось ввиду перекодировать, например в mp4. Для просто посмотреть не так интересно.
     
  • 2.34, пох (?), 10:25, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А что, на пихтоне и жлобоскрипте такое написать не получится?

    да, я тоже не понимаю, фигня какая-то.

    Ну хотя бы на яве?

     
  • 2.47, Аноним (44), 12:20, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > А что, на пихтоне и жлобоскрипте такое написать не получится? Странно.

    Эти фаготы для сборки мезоногуно затребовали. ФакЪ.

     

  • 1.35, Нанобот (ok), 10:26, 12/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Плюсом dav1d также является более компактная реализация: dav1d включает в 10 раз меньше кода по сравнению с libaom

    через пару годиков разбухнет до сравнимых размеров

     
     
  • 2.49, Аноним (44), 12:23, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Без энкодера таки не разбухнет наверное, но и кодировать соответственно не сможет.
     

  • 1.50, Аноним (50), 12:39, 12/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждем конкурирующего проекта GoL1aph
     
  • 1.52, Анонтоним (?), 13:25, 12/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >  с ассемблерными вставками (NASM/GAS)

    Когда же они эту дурь из головы выбросят? Компиляторы давно уже починили - пользуйтесь же интринсиками наконец!

     
     
  • 2.54, VEG (ok), 14:50, 12/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На обычном асме такие оптимизации писать может быть просто удобнее.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру