All streams
Search
Write a publication
Pull to refresh
4
0.3
Send message
  • В два раза, на МКС 240 кВт (и Внешний Источник Тени, который уменьшил это число в 2 раза в вашем комменте)

  • Там стоит говно мамонта с 30 Вт/кг.

  • Японцы что-то себе считают исходя из 1800 Вт/кг, вообще говорят о 500-4300 Вт/кг. Это 100-1000 кг на 500 кВт. Кто-то пишет о 2200 Вт/кг как о реальном товаре.

А вот если сплошные "проверить бит -- установить бит", то на асме, как по мне, даже лучше оказаться в плане читаемости может

Стопудово.. Я иногда скучаю о асмовских командах установки/тестирования битов. Особенно на портах ввода/вывода

Вы серьёзно? Они при желании доступны через inline-ассемблер, его (или версию на C) можно завернуть в макрос, можно в функцию, можно заменить функцией или макросом из HAL-библиотеки к железке или самостоятельно написать такую (некого Аскольда Волкова интернет не помнит, а его макросы помнит).

Вряд ли. Там шаблонные скобки не возвращали вручную, их штук 50 в статье. Их не хватает только в unordered_set и в 2 случаях из 3 их можно опустить, полагаясь на вывод типов.

Там ещё вёрстка кода поехала. На его сайте статья висит исправленная (unordered_set<string>) и дополненная (I wanted Lines read as lines) и всё равно с ошибками (в скобках:{...)).

https://stroustrup.com/21st-Century-C++.pdf

Хм, на godbolt.org нет ни одного компилятора, который бы запустил код. У msvc есть поддержка нужной фичи (__cpp_lib_containers_ranges), но в тамошней версии нет поддержки модулей и ещё from_range-конструктор unordered_set'а не берёт istream_iterator в качестве аргумента (старый компилятор или ошибка у Страуструпа - не знаю).

Для защиты прихожан от чужаков есть простой линусовский жест: "*YOU* are full of bullshit. $LangName is a horrible language". Но это не иноверцы, два креста носящие, Rust в ядро приглашён. Линус проблемы мягко обрисовывает как конфликт поколений: есть у них "old-time kernel developers", которые Rust не знают и знать не хотят (а когда закончатся - вступайте в наследство).

К тому же в этот раз могут надавить государство и корпорации. В старой истории с C++ у них интереса не было, а сейчас ОАО "Красная шляпа" и прочие могут напомнить, на чьей земле монастырь стоит.

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

15.625 кГц - строчная частота PAL
15.73426 кГц - NTSC

У меня Ryzen 7800x3D, а до этого у меня был 5 1500x. Разницы нет вообще

Для какой-то видеокарты и каких-то предпочтений в играх - вполне может быть, но обобщения как в начале ветки из этого опасно делать.

Ryzen 5 1500X не лучше i7-7700, слабее последних народных зионов (там есть 6-8 более быстрых ядер, на уровне Zen+), слабее приставочных процессоров (8 ядер на уровне десктопных Zen+).

В приставках стоят процессоры в 2+ раза мощнее. Их производители что-то знают.

Игры любят 6-8 максимально быстрых ядер (и одноядерную производительность любят больше, чем переход от 6 к 8) с поправкой на то, что можно упереться в видеокарту. Видеокарта вообще важнее, но

не настолько, чтобы ставить к 4090+ процессор второй свежести

Воистину. У techpowerup есть диаграммы на тему скорости запуска игр, где два PCIe Gen5 SSD (выделены цветом), 970 EVO Plus и прочие вплоть до SATA QLC.

Может чуть подождали бы и стандарт сразу был бы лучше, уровня IP v6, без проблем с дефицитом IP адресов.

Оффтоп: если бы они сделали стандарт уровня IPv6, то его бы сейчас внедрили примерно наполовину. Да и в проблеме дефицита адресов большая часть вины на IPv6, ИМХО. Знали бы, чем обернётся принятие IPv6, смотрели бы в сторону RFC 1385 и т.д.

Ниже вон про него вспомнили как про более человечный интерфейс к CRIU.

Разрезание по ключевым кадрам автоматически достигается в ffmpeg через -noaccurate_seek

Считайте, что я этого не говорил, это глупость.

Поизучать поведение можно на тестовом файле, где I/P/B-кадры стоят на удобных timestamp'ах и на видео наложен тип и номер кадра.

Опасно
ffmpeg                                                          ^
    -y                                                          ^
    -f lavfi -i color=0x402000:rate=10:duration=10:size=640x480 ^
    -f lavfi -i color=0x002040:rate=10:duration=10:size=640x480 ^
    -f lavfi -i color=0x004020:rate=10:duration=10:size=640x480 ^
    -f lavfi -i color=0x401040:rate=10:duration=10:size=640x480 ^
    -filter_complex "[0:v:0][1:v:0][2:v:0][3:v:0]concat=n=4:v=1:a=0[outv]"  ^
    -map "[outv]"                                               ^
    -x264-params scenecut=0:keyint=100:b-adapt=0:bframes=9      ^
    "temp.mkv"

:: 10 fps; 40 seconds; pts=0..39.9; I B*9 P B*9 P...; 
:: https://stackoverflow.com/a/21026862
    
ffmpeg                                                          ^
    -y                                                          ^
    -i "temp.mkv"                                               ^
    -vf "drawtext=text='%%{pict_type}':fontfile='swmono.ttf':fontcolor=black:fontsize=200:box=1:boxcolor=white:boxborderw=5:x=w-tw,drawtext=text='%%{frame_num}':fontfile='swmono.ttf':fontcolor=black:fontsize=200:box=1:boxcolor=white:boxborderw=5:x=w-tw:y=h-th,drawtext=text='%%{pts}':fontfile='swmono.ttf':fontcolor=black:fontsize=50:box=1:boxcolor=white:boxborderw=5" ^
    -x264-params scenecut=0:keyint=100:b-adapt=0:bframes=9      ^
    "test_vid.mkv"

Переносы (^) и экранирование (%->%%) виндовые, не для bash.

-vf накладывает на кадр свойства %{pict_type},%{frame_num},%{pts} через 3 вызова drawtext.

ffmpeg совсем не годится для такого, выглядит и отлаживается отвратительно, это работа для vapour/avisynth, но зато без лишних зависимостей

Если кратко:

  • интервал работает так: [-ss; -to), -t тоже задаёт открытый интервал

  • но только не с -c copy , тогда интервалы работают... как-то сложно

  • конец интервала с -c copy может быть P-кадром, может быть битым (выкинул 5 B-кадров перед последним P-кадром)

  • -noaccurate_seek -ss _ -i _ делает фигню (у меня добавление опции захватывает ещё один кадр перед -ss, независимо от типа кадра)

  • автопоиск ключевых кадров для обоих концов интервала есть разве что в -f segment -segment_times _,_,... -c copy

Первый нужен, если вдруг энкодер плохо параллелится.

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

А что в этой соньке такого необычного?

Следующая модель уже крупнее, на ней линейка прекращается, более свежий аналог-флагман от Sharp - только в Японии, более свежие и ещё относительно компактные младшие модели от Sony - только в Японии.

своего рода bleeding edge.

жуткий геморрой

серьезно стоит только если большие бабки на кону

Можно разбить задачу на три части:

  • Научиться резать, кодировать кусками и склеивать

  • Перебирать параметры для максимизации метрики качества (VMAF). Кодируем кусок, смотрим на VMAF, повторяем с другими настройками (QP в статье netflix)

  • Повторять для разных разрешений, выбирать куски по разным критериям ("minimizing bitrate for a given average quality or maximizing quality for a given average bitrate")

Первые два пункта реализованы в av1an, а третий вроде бы нужен только видеохостингу.

Не-не-не, истина где-то рядом посередине.

TL;DR: резать видео на куски - это нормальный подход, который должен хорошо работать в CRF-режимах и который используется для распараллеливания кодирования AV1. Только резать не по ключевым кадрам, а по scenecut'ам, как это делает утилита av1an.

___

Если при кодировании целиться в определённый уровень качества, а не в размер файла (не в средний битрейт), то тогда алгоритмы rate control'а не должны делать ничего важного на длинных промежутках.

Допустим, кодируем по отдельности 2 сцены с разной сложностью по 5 минут каждая.

  • Хотим получить файл в X мегабайт - придётся сцены кодировать в файлы X/2 мегабайт - битрейт распределяется неоптимально (сложная сцена недополучает, лёгкая - получает избыточный).

  • Хотим получить X единиц качества (--crf, --cq-level, VMAF) - тогда сцены друг от друга почти не зависят, раздельное кодирование почти никак не вредит.

Примерно поэтому разработчики x264 настаивали на том, что в их энкодере однопроходный CRF-режим - лучший по качеству. 2pass чуть-чуть выигрывает от того, что алгоритмы алгоритмы rate control'а видят весь файл (словно у нас CRF + ‑-rc‑lookahead ∞), но время, затраченное на второй проход, в x264 выгоднее потратить иначе (вместо 2pass выбрать CRF с более медленным пресетом).

Другая часть истории - гугл. Он стал делать кодеки. И эти его кодеки плохо параллелятся на все ядра. Поэтому в AV1 кодирование кусками (chunking) и склеивание - это чуть ли не ожидаемый сценарий использования. Поэтому появилась утилита av1an - она режет видео на куски по scenecut'ам и запускает пул из N штук ffmpeg'ов (ну и делает вид, что её работа гораздо сложнее, чем на самом деле).

___

Разрезание по ключевым кадрам автоматически достигается в ffmpeg через -noaccurate_seek: Previous behavior (seek only to nearest preceding keyframe, despite inaccuracy) can be restored with "-noaccurate_seek" - https://trac.ffmpeg.org/wiki/Seeking

___

Чтобы меньше вредить качеству, режут по переходам между сценами и shot'ами. Дальше можно выбирать наиболее резкие переходы и наложить ограничение на минимальную длину куска. Методы: использовать выхлоп встроенного ффмпеговского scene detector'а или использовать сторонний, как делает av1an.

___

А если мы в месте склейки вылезем за ограничения, которые важны аппаратным декодерам? Если мы заморачивались со всякими --level, --bluray-compat, --vbv-maxrate и хотим сохранить гарантии совместимости? То мы слишком много хотим, то это тонкие материи, наверное, есть платные инструменты для точного контроля совместимости. Нас бы и без склейки мог, например, обломать один из многочисленных багов с упоминанием VBV в истории версий x265.

Если вычеркнуть вариант "не включать дедупликацию", то да.

> Я недавно искал телефон размером 125х60х8 мм

Самое близкое, что сейчас есть - это Blackview A52, 164x62x9мм.

Если позаглядывать в китайские подвалы, найдётся на треть меньше. Кто-то-китайский "Xiaomi Duoqin" Qin 3 Ultra, 127x62x8.7 мм (@coresky, вот, +2 мм).

Предыдущий Qin 2 ещё меньше, но сильно урезан. Новый, впрочем, тоже с проблемами. Если смотреть на железо, то подвалом не назовёшь: Helio G99 + 8 ГБ оперативки, но всё-таки это малоизвестный китаец вроде вышеупомянутых Unihertz.

Недоступность максимальных ёмкостей и недоступность HAMR - нормальные явления.

Самые новые HDD, видимо, выгоднее сначала обкатывать на бизнесе, потом продавать оптом и только потом пускать в розницу.

Переносами массового производства HAMR Seagate страдает с 2019 года, какие-то у них были проблемы.

Розничный >26 ТБ, с HAMR, вообще говоря, есть, но в только странном виде "Factory Recertified" / "Refurbished by Seagate": ST28000NM000C[1][2]. И соль тут не в лоте на ebay, а в том, что эта линейка дисков (...NM000C, 22-28 ТБ) изначально появилась как "Factory Recertified" и в другом виде не существует.

Эта история тоже давно закончилась.

  1. SSD упёрлись в скорость SATA

  2. *переходный период, поиск решений*

  3. победил вариант: PCIe, поверх него NVMe и как форм-фактор M.2

  4. SATA SSD перестали развивать примерно в 2019, с тех пор только упрощают, удешевляют, выводят из продажи.

Вариант с кабелями назывался SATA Express и быстро проиграл M.2.

Но это не мешает подключать M.2 через переходники, кабели и PCIe-коммутаторы, только теперь вместо кабеля в коробке требуется фантазия пользователя.

30 ТБ год назад ждали в розницу, а у 32+ ТБ смертным мешает только HM-SMR.

Смертные могут купить себе WD Gold на 26 ТБ на амазоне (остальные потребительские у WD до 24 ТБ). 24 ТБ, 26 ТБ, 30 ТБ - принципиальной разницы нет, смертным будут давать всё больше и больше.

Information

Rating
2,448-th
Registered
Activity