24 бит-адрес в hex — CodeRoad
Сколько hex цифр имеет 24-битный адрес памяти?
memory hex bit memory-addressПоделиться Источник node ninja 15 марта 2011 в 02:23
4 ответа
- 16 бит hex и переменные
Я пытаюсь отправить следующий hex в NSOutputstream 0x0000000e000000010000001000003014 Я могу отправить hex, то есть 8 бит со следующим кодом: long myhex = 0x0000000e00000001; NSData *data = [[NSData alloc] initWithBytes:&myhex length: sizeof(myhex)]; [outputStream write:[data bytes]…
- RGB для Hex в Arduino эскизы
У меня есть функция, которая принимает от 24 бит до 12 бит hex и печатает значение цвета на LCD. Если пользователь вводит значения RGB, как я могу преобразовать RGB в одну 24-битную строку hex? Я нашел много алгоритмов Java и C++ в интернете, но я не могу сделать их совместимыми с Arduino.
5
Одна цифра hex соответствует 4 двоичным цифрам(битам)
для 24 бит есть 3 байта(8 бит), что составляет 6 hex цифр.
Поделиться user623879 15 марта 2011 в 02:25
4
- 8 бит = 1 байт
- 24 бита = 3 байта
- 1 байт = 2 hex символов
- 2 байта = 4 hex символов
- 3 байта = 6 hex символов
Поделиться jterrace 15 марта 2011 в 02:24
2
Каждая цифра hex обрабатывает четыре бита, поэтому для 24-битного адреса требуется шесть цифр hex. Вы можете увидеть связь между hex и двоичным кодом здесь:
Hex Binary Hex Binary
--- ------ --- ------
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
Поделиться paxdiablo 15 марта 2011 в 02:24
2
каждый hex равен 4 битам, каждое число в базе 16 равно 2^4 следовательно, 4 цифры в базе 2
Поделиться AbiusX 15 марта 2011 в 02:25
Похожие вопросы:
Как преобразовать знаковое десятичное число в HEX 24-битное двоичное число со знаком дополнения
Мне нужна помощь, чтобы отправить знаковое десятичное значение в потоке UDP, следуя определенной структуре протокола. Отправка потока UDP-это кусок пирога, но преобразование моего знакового…
Float24 (24-битная плавающая точка) до Hex?
Я использую float 24 bit для хранения значения с плавающей запятой в компиляторе MRK III из NXP. Он хранит 24-битное значение float как 3 байта Hex в памяти данных. Теперь, когда я использую…
первый 16 бит из 32 бит hex
Пожалуйста, извините меня за отсутствие знаний здесь, но не мог бы кто-нибудь дать мне знать, как я могу получить первые 16 бит 32-битного числа hex.
16 бит hex и переменные
Я пытаюсь отправить следующий hex в NSOutputstream 0x0000000e000000010000001000003014 Я могу отправить hex, то есть 8 бит со следующим кодом: long myhex = 0x0000000e00000001; NSData *data = [[NSData…
RGB для Hex в Arduino эскизы
У меня есть функция, которая принимает от 24 бит до 12 бит hex и печатает значение цвета на LCD. Если пользователь вводит значения RGB, как я могу преобразовать RGB в одну 24-битную строку hex? Я…
Как отобразить 24 бит RGB Hex на Nokia 6100 вместо 12 бит Hex
Я использую Arduino Uno для питания Nokia 6100 LCD. В моей программе я беру RGB 8-битный ввод, который может быть преобразован в 24-битный Hex с помощью любых доступных онлайн-инструментов…
Инвертировать 7-й бит строки hex C++
Возможный Дубликат : Измените бит числа hex с ведущими нулями в C++, (C ) У меня есть этот номер в строке hex: 002A05(7th bit is set to 0) Мне нужно инвертировать 7-th бит этого числа, так что после…
преобразователь волны 24 бит в 16 бит
я хочу преобразовать некоторые WAV-сигналы, которые 48 кГц 24 бит file.wav до 48 кГц 16 бит файл-2.wav import wave origAudio = wave.open(Sample_5073.wav,r) frameRate = origAudio.getframerate()…
Преобразуйте бит Hash в Hex, а затем обратно в бит Hash
Я создаю инструмент, который помогает находить дубликаты изображений. Чтобы использовать bktrees, мне нужно использовать бит hash, однако было бы неплохо сжать этот больший бит hash в меньший hex…
Как определить, установлен ли бит в строке hex-decimal?
У меня есть строка в формате hex, например: AAE04471 На мой взгляд, в двоичном представлении эта строка должна выглядеть так: 10101010 11100000 01000100 01110001 Я пытаюсь определить, установлен ли…
В этом документе приведено элементарное введение в принципы хранения картинок (растровые изображения, bitmap) и их отображения, как это используется в компьютерной графике (перевод [1]). Растр (bitmap, дословный перевод этого термина «поле бит», или «карта бит») определен как равномерный, прямоугольный набор ячеек, которые называются пикселами (pixel, переводится как «точка»). Обычно каждый пиксел хранит информацию о цвете точки, но понятие «цвет» трактуется более широко — например, цвет может быть монохромным (monochrome, т. е. только 2 цвета — черный и белый, 0 и 1), или с градациями серого (grayscale). В сущности, чтобы полностью сохранить данные картинки, нужно знать только количество точек (оно зависит от размера сторон прямоугольного поля бит N и M) и информацию содержимому каждого пикселя (его глубину цвета, colour depth). Именно в таком виде картинки хранятся в памяти компьютера, когда они выводятся на устройство отображения (экран), однако к этим двум фундаментальным параметрам также могут добавляться другие дополнительные данные. Обратите внимание, что карта бит bitmap всегда ориентирована горизонтально и вертикально. Пикселы считают маленькими квадратиками, хотя на практике они могут иметь другое реальное физическое соотношение сторон (aspect ratio). Чаще всего bitmap-ы используются для представления картинок в компьютерах. Например, картинка, показанная ниже, имеет 397 пикселя по горизонтали 294 пикселя по вертикали, и каждый пиксель содержит значение уровня серого, которое может быть для каждой точки 256 различных оттенков. Что такое глубина цвета (Colour depth). Каждый пиксел растра bitmap содержит определенную информацию, обычно интерпретируемую как цвет. Смысл и формат содержимого этой информации всегда одинаков для каждой отдельной точки изображения bitmap. Количество информации для каждой точки должно определяться требованиями приложения, однако имеется несколько стандартных, общепринятых форматов данных, содержащих описание каждой точки растра. Рассмотрим эти самые популярные форматы для передачи растровой картинки. Формат 1 bit (black and white). Это самый компактный из всех возможных вариантов представления графической информации для каждого пикселя. Результирующая картинка получается монохромной, или черно-белой (точка может иметь либо черный цвет, либо белый, других вариантов нет). Пикселы, бит которых равен лог. 0, считаются черными, и пикселы, бит которых равен лог. 1, считаются белыми. Обратите внимание, что хотя есть только 2 возможных состояния для каждой точки, на практике на этапе отображения обычно есть возможность привязки к этим двум состояниям двух цветов, т. е. 0 соответствует одному цвету, и 1 другому цвету. 8 бит серого (8 bit grayscale). В этом случае каждый пиксел получает в соответствие 1 байт (8 бит) места в памяти, благодаря чему можно закодировать 2 8 = 256 различных состояний точки. Если эти состояния отображены на палитру уровней серого, то получится черно-белая картинка с 256 градациями яркости (greyscale image). Принято, что 0 обычно соответствует максимально черному цвету, и 255 максимально белому. Остальные уровни серого будут линейно по яркости соответствовать промежуточным уровням кодирования, т. е., к примеру, уровень 127 будет соответствовать примерно средней яркости, 50% по яркости от уровня максимума белого. В любом частном приложении диапазон уровней серого может быть привязан к произвольным уровням яркости или даже цвета, т. е. уровни 0-255 могут быть преобразованы некоторыми программами в уровни 0-1, но большинство программ преобразуют уровни 0-255 к уровням 0-65535 (в качестве примера см. спецификацию системы цветового кодирования Apple). 24 bit RGB. Это следующий шаг от кодирования 8 bit grey, теперь по 8 бит выделено каждому из компонентов цвета red (красный), green (зеленый) и blue (синий). В каждой компоненте уровень 0 соответствует отсутствию этого цвета, и 255 соответствует полному насыщению цвета. Поскольку каждый компонент дает 256 различных состояний, то всего можно закодировать 2 Идея цветового пространства RGB является фундаментальной концепцией компьютерной графии. В пространстве RGB любой цвет представлен точкой внутри куба с перпендикулярными осями r,g,b. Обратите внимание, что что уровни серого формируют прямую линию от черного до белого, составляя диагональ куба r = g = b. 8 bit indexed colour. Индексированный цвет — более экономичный способ сохранять цветные растровые изображения без использования 3 байт на точку. Как и для формата градаций серого 8 бит, на точку здесь приходится 1 байт, но только теперь значение этого байта указывает на значение цвета в таблице RGB (см. рисунок ниже). Такая таблица называется палитрой. Поскольку значение байта указывает на цвет в палитре как индекс в таблице, то такой формат называют еще формат с индексированными цветами. Есть некоторое количество интересных атрибутов в такой системе с индексированными цветами. Если в картинке меньше 256 цветов, то она будет иметь такое же качество, как и 24 bit bitmap, однако будет занимать место в 3 раза меньше. Интересующие цвета и эффекты анимации могут быть достигнуты простым изменением палитры, это немедленно повлияет на внешний вид картинки. Обычно для уменьшения большой картинки 24 bit bitmap применяют её преобразование в формат с индексированными цветами и оптимизированной палитрой. Оптимизированная палитра позволяет лучше всего воспроизвести цвета, которые присутствуют в оригинальном растре bitmap. 4 bit indexed colour 32 bit RGB. Здесь принцип хранения картинки тот же самый, что и в цветном формате 24 бита, но еще добавляется 1 байт канала альфа (alpha channel). Этот канал может быть использован для маскирования областей картинки, или для представления прозрачности. 16 bit RGB. Здесь на каждый цвет приходится по 5 бит, и 1 бит остается на канал альфа (см. рисунок ниже). [Что такое разрешение картинки (Resolution)] Разрешение это атрибут картинки, который нужен для визуального отображения картинки или вывода на печать, поскольку у самих точек нет никакой информации о их физическом размере. Разрешение как раз дает такую привязку к физическим размерам, и обычно указывается в количестве пикселов на дюйм (dots per inch, или сокращенно DPI). На устройствах с прямоугольными пикселами разрешение может быть указано двумя числами, с указанием горизонтального и вертикального разрешения. Концепция разрешения не зависит от информационного содержания растра bitmap, и становится важной только при переносе растра на физические объекты (экран монитора или лист бумаги принтера). Это особенно важно, когда количество точек по горизонтали и вертикали исходного растра не соответствует количеству точек конечного устройства вывода. Качество печати будет зависеть от установленного разрешения картинки. Поскольку разрешение определяет физический размер точки, то разрешение может также использоваться для изменения размера картинки при выводе изображения. В качестве примера рассмотрим одну картинку bitmap размером в 200 точек по горизонтали и 100 по вертикали. Если этот растр будет напечатан с разрешением 100DPI, то он получит размер 2 дюйма по горизонтали и 1 дюйм по вертикали. Но если ту же самую картинку распечатать с разрешением 200 DPI, то она будет размером всего лишь 1 дюйм по горизонтали и полдюйма по вертикали. Всякий раз, когда растр bitmap отображается на мониторе компьютера, необходимо учитывать разрешение картинки. Многие мониторы могут иметь разрешение от 60DPI (низкое качество) до 120DPI (высокое качество) и более. Точно так же, как и при выводе на печать, чем выше разрешение картинки, тем она будет выглядеть меньше по размеру на экране монитора — из-за того, что размер каждого пиксела будет меньше. На следующем примере можно увидеть две картинки с одинаковым содержанием растра bitmap, но с разным разрешением (с разным размером точки). Картинка меньшего размера имеет разрешение 80DPI, и большая картинка имеет разрешение 30DPI. В увеличенной версии картинки отдельные пиксели намного заметнее. Это еще не все, что касается отображения картинки на разных устройствах вывода, поскольку у разных устройств есть разные возможности по отображению цветовой гаммы, или глубины цвета. [Преобразование глубины цвета] Часто нужно отобразить растр bitmap с одной глубиной цвета на устройстве, которое имеет другие возможности по параметру глубины цвета. Конечно, если у конечного устройства можно вывести больше цветов, чем есть на картинке bitmap, то растр может быть отображен наилучшим образом. В обратной ситуации, когда у устройства назначения глубина цвета отличается в худшую сторону (количество отображаемых цветов меньше, чем количество цветов растра), то картинку следует преобразовать во что-то, что будет лучше выглядеть на экране монитора. В качестве примера рассмотрим отображение картинок с градациями серого на монохромных (где есть только черный и белый цвет точки) устройствах. Это обычная ситуация для устройств на микроконтроллерах с экраном ЖКИ. Оттенки серого можно передать путем изменения количества черных и белых точек в зависимости от уровня серого. Особенно такой способ передачи градаций хорошо подходит для случая, когда у устройства вывода разрешение превышает разрешение картинки — это позволяет создать апроксимацию градаций серого каждой точки растра с помощью разного количества точек конечного устройства. Предположим, растр bitmap 75DPI нужно отобразить на черно-белом лазерном принтере с разрешающей способностью 300DPI. В таком случае каждую точку картинки можно представить матрицей 4×4 черных и белых точек принтера, и таким способом передать яркость точки картинки. Есть несколько разных техник для получения такого соответствия матриц точек яркости точки оригинальной картинки. Одна из таких техник называется дизеринг (dithering, дословный перевод «размывание»). Даже для дизеринга есть несколько возможных алгоритмов для получения матриц пикселей для разных уровней яркости. На картинке ниже показана диаграмма смены уровней яркости и (вертикальная полоса слева) и два варианта черно-белого дизеринга — скорректированного увеличения по образцу (greatly enlarged using pattern) и размытие с диффузией (diffusion dithering). Как уже упоминалось, есть разные техники для отображения растра большой глубины цвета с малым разрешением на устройствах с малой глубиной цвета и большим разрешением. Еще одна такая техника в полиграфии называется screening. Мы не будем подробно рассматривать здесь эту технику, скажем только, что уровни серого здесь представлены объектами разного размера, чем серее точка, тем больше размер объекта (площадь объекта на точке пропорциональна уровню серого точки). Объекты выровнены по равномерной матрице под некоторым углом к горизонтали. Наиболее часто используются объекты в виде точек, черточек и прямоугольников. Ниже показан пример техники скрининга для представления градаций серого. Мы рассмотрели преобразование глубины цвета только для картинок с градациями серого (greyscale). Преобразование цветных картинок с высокой глубиной цвета в малую использует тот же самый принцип, отличие только в том, что процедура конверсии накладывается на основные компоненты цвета, на каждый по отдельности. Например, для RGB делается дизеринг отдельно по каждому каналу R, G, B. Предположим, что у нас есть 8-битная картинка с градациями серого; какой самый простой способ сохранить её как двухцветную (монохромную, 1 бит на точку) [2]? 1-битные изображения все еще используются в коммерческой печати. Обычный файл формата CMYK или картинка с градациями серого перед созданием плат офсетной печати преобразуются в 1-битное изображение. Картинка, печатаемая на лазерном принтере, также считается в какой-то момент растровым 1-битным изображением. Изображения на футболках или шевронах часто печатаются как 1-битные (вспомните классическое изображение профиля Эрнесто Че Гевары). Не существует простого метода получить монохромный растр из многоцветного. Всегда перед преобразованием необходимо сделать некоторый выбор. Рассмотрим несколько примеров. Исходная картинка: Линейное преобразование. В этом случае выбирается некий пороговый уровень яркости, выше которой точка считается белой, и ниже этой яркости точка считается черной. Ниже показан пример такого преобразования при выбранном пороге яркости 50%. При таком преобразовании можно регулировать порог оценки яркости: Дизеринг. Этот вид преобразования используется в некоторых монохромных цифровых принтерах для передачи оттенков серого. Разновидностью дизеринга является применение стандартных шаблонов точек для передачи уровней яркости (postscript pattern). Картинки после такое преобразования могут в некоторых случаях лучше выглядеть при отображении на цифровых мониторах. [Хранение растра bitmap] Наиболее очевидный способ сохранить растр bitmap — просто представить информацию в виде списка точек, байт за байтом, строка за строкой. Файлы, где графическая информация сохранена таким способом, часто называют RAW-файлами (raw переводится как «сырые данные»). Размер места хранения для такого файла можно вычислить по количеству точек в картинке (размерам растра bitmap N x M) и глубине цвета каждой точке в битах (B). Вот формула для вычисления размера файла: N * M * B Здесь N и M это количество точек (пикселов) картинки по горизонтали и вертикали, и B это количество бит, которыми закодирован каждый пиксел. В следующей таблице показаны размеры файлов картинок bitmap, если они будут сохранены в формате RAW. размер картинки глубина цвета размер файла Как можно увидеть из таблицы, формат 24 бита на точку дают файлы большого размера, в этом случае применение компрессии файла становится важным. Есть множество вариантов сжатия (компрессии) изображений bitmap от очень простых до весьма сложных. Но всегда имеется два основных формата при использовании сжатия — lossless (когда файл сжимается без потерь, что дает самое лучшую передачу оригинальной картинки) и lossy (когда теряется некоторая часть графической информации). Ниже показана основная иерархия техник компрессии. Самый грубый способ уменьшить размер файлов — ухудшить кодирование информации цвета, это так называемая техника редукции бит (bit reduction), или квантизация (quantization). Один из примеров — преобразование растра 24 bit bitmap в 8 bit indexed bitmap с использованием дизеринга для симуляции потерянных цветов. Наиболее известен среди форматов с потерями формат JPEG, и описание его работы выходит за рамки нашего обсуждения. Его основное преимущество в том, что он может предложить намного большую степень сжатия, чем форматы сжатия без потерь. Для примера рассмотрим следующую картинку bitmap с оригинальным размером 500 x 350 пикселей и 24 битами кодирования цвета на точку. По формуле для формата RAW размер не сжатого файла получится 500 x 350 x 24 / 8 / 1024 = 513 килобайт. Сохранение этой же картинки в формате с градациями серого (редукцией бит) даст размер 171 килобайт (в 3 раза меньше), сохранение с сжатием RLE даст 388 килобайт (75% от оригинала), сохранение со сжатием LZW даст 188 килобайт (36% от оригинала), и сохранение в JPEG даст 30 килобайт (коэффициент сжатия 17:1). Ниже мы рассмотрим пример самой простой техники сжатия без потерь, которая называется кодирование длины (run length encoding, RLE). Эта техника дает хороший выигрыш на картинках, где небольшое количество цветов. Предположим, что у нас есть маленькая картинка размером 16 x 10 пикселей, с кодированием цвета 8 бит. Если картинка была сохранена в RAW, то для неё понадобится 16 байт на строку, всего 10 строк, т. е. 160 байт. Однако, как можно увидеть, первые две строки содержат точки одного и того же уровня, так что более эффективно сохранить количество точек и их уровень, чем сохранять уровень каждой точки по отдельности. Таким образом, на каждую строку вместо 16 байт можно оставить только 2 байта. В формате raw первые 3 строки будут выглядеть так: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 С использованием сжатия RLE данные этих трех строк будут закодированы так: 16 0 Конечно, актуальная реализация RLE содержит более сложный алгоритм, однако основной принцип кодирования при сжатии именно такой. Чтобы с помощью RLE получить большую степень сжатия, нужно чтобы на картинке повторялось большое количество одинаковых соседних точек, что будет вряд ли полезно для сохранения высококачественных фотографий с глубиной цвета 24 бита. [Форматы файлов растровых изображений] Следующий список дает краткое описание некоторых форматов, широко применяющихся для сохранения bitmap. Используется на платформах: главным образом поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: Aldus Примечания: TIFF является интернациональным стандартом для сохранения картинок и обмена ими между приложениями и аппаратными платформами. Поддержка этого формата почти всегда есть на многих приложениях, которые позволяют манипулировать растровыми изображениями. Формат состоит из элементов, называемых тэгами, что определено в стандарте. За каждым тегом следует другой тэг, получается зависящая от содержания тэгов структура данных. Поддерживаются большинство вариантов глубины цвета и методов компрессии. Используется на платформах: изначально на DOS-WINDOWS. Владелец: ZSoft Corp Примечания: самый старый и наиболее широко используемый формат на компьютерах с DOS. Может поддерживать индексированный цвет 24 бита. Кодируется только по принципу RLE. Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: CompuServe Примечания: GIF также является очень популярным форматом. Чаще всего он используется на билбоардах и в Интернет. Кодирование ограничено 8 бит на точку с применением индексации цветов (палитра), для компрессии используется LZW. Может содержать в себе несколько изображений и текстовые оверлеи, поддерживается прозрачность, и также может содержать в себе несколько картинок, что позволяет делать анимацию изображений. Используется на платформах: исключительно Mac. Владелец: Apple Примечания: PICT используется только на компьютерах Macintosh. Реализация PICT на Macintosh работает на уровне операционной системы, и поддерживается всеми приложениями Macintosh. Этот формат отвечает за обмен изображениями на Macintosh и используется в операциях cut/copy/paste. Поддерживаются большинство пространств цвета и методов сжатия, включая JPEG. Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix. Владелец: владельца нет, формат свободен от патентов Примечания: очень полезный формат, который получает все больше поддержки в сети WWW. Поддерживается глубина цвета до 48 бит, передача уровней серого до 16 бит. Применяется много схем компрессии, включая даже определенные пользователем. Используется на платформах: все платформы Владелец: владельца нет Примечания: это самый простой метод для сохранения картинок из всех, просто сохранение «сырых» (raw) байтов. Часто используется в фотокамерах для записи изображений. Например, один байт на точку для greyscale или 3 байта на точку для цветов RGB. Не существует единого стандарта на заголовок файлов RAW, это может определять сам производитель фотографического оборудования. Используется на платформах: все платформы, изначально на UNIX Владелец: владельца нет Примечания: это несколько больше, чем простой raw формат, имеются некоторые согласованные части заголовка. Обычно используется для картинок 8 бит greyscale или цветных 24 bit RGB. Используется на платформах: главным образом исключительно на DOS/Atari Владелец: Digital Research Примечания: поддерживается операционной системой GEM. Используется на платформах: главным образом исключительно Amiga Владелец: Electronic Arts Примечания: поддерживается 4-битная таблица цветов и 24-битные цвета. Используется на платформах: смешанная поддержка на Mac/DOS-WINDOWS/UNIX Владелец: TrueVision Inc Примечания: изначально разработана для плат захвата изображений VISTA. Несколько больше, чем простой RAW-формат, есть заголовок с дополнительной информацией. Используется на платформах: главным образом DOS-Windows Владелец: MicroSoft Примечания: формат MicroSoft Windows, раньше использовался в основном только на ней, но потом благодаря своей простоте обрел популярность. Несжатые варианты особенно удобно использовать на маломощных встраиваемых системах. Поддерживаются глубина цвета от greyscale 1, 2, 4, 8 бита на точку до 32 битных цветных изображений. Используется на платформах: Primarily Sun Владелец: Sum MicroSystems Примечания: Only supported by Sun. Use RLE and either 8 bit greyscale or 24/32 bit colour. Используется на платформах: в основном платформа X system Владелец: MIT X Corp Примечания: специально для программной реализации отображения растровых картинок в оконной системе X windows, используется для курсоров и иконок. Используется на платформах: в основном платформа X system Владелец: MIT X Corp Примечания: формат сохранения экрана в X windows. Поддерживается глубина цвета от монохрома до 24 бит на точку с прямым кодированием цветов. [Ссылки] 1. A Beginners Guide to Bitmaps site:paulbourke.net, written by Paul Bourke. |
Размер пикселя в байтах: сколько весит 1 px
Сложно однозначно ответить на вопрос сколько в 1 пикселе байт, ведь размер пикселя в байтах или битах зависит от того, сколько цветов, какая кодировка используется.
Краткий ответ: 1 пиксель = 3 байта (при цветовой схеме True-color).
Если сохранять картинку с помощью какого-нибудь графического редактора, используя разное количество цветов, то можно увидеть, что вес картинки при сохранении с использованием 256 цветов будет выше, чем при использовании 128 цветов (что логично).
Для примера приведены скриншоты ниже.
Это одна и та же картинка, в ней одинаковое количество пикселей, но в первом случае она весит 196,8 K, а во втором 160,7 K.
Вес 1 пикселя в зависимости от разрядности цветового режима
Сколько будет весить 1 пиксел в байтах и битах в зависимости от разрядности цветового режима?
Размер пикселя в байтах:
- В монохромном (21): 1 пиксель = 1/8 байт (1 бит)
- В 16-цветном (24): 1 пиксель = 0,5 байт (4 бит)
- В 256-цветном (28): 1 пиксель = 1 байт (8 бит)
- True-color (224): 1 пиксел = 3 байта (24 бита)
- True-color + Альфа канал (224 + 8-битный канал): 1 пиксел = 4 байта (32 бита)
1 пиксель может быть равен от 1 до 32 бит (от 1/8 до 4 байт).
Если для примера взять RGB модель кодирования (True-color 224), состоящую из 3-х основных цветов: красного, зеленого, синего, каждый из которых в свою очередь имеет по 256 оттенков, то можно посчитать:
1 параметр из 256 оттенков = 1 байт = 8 бит. Учитывая, что RGB – 3 цвета = 3 параметра по 256 оттенков каждый, то соответственно получаем, что для кодирования одного пикселя используется 3 байта.
1 пиксель = 3 байта = 24 бита.
Подсчет размера 1 пикселя на картинке
С подсчетами исходя из цветовой разрядности разобрались, но что если нужно просто посчитать размер 1 пикселя в какой-то конкретной фотографии или на какой-то картинке?
Сделать это достаточно просто:
- Нужно умножить высоту на ширину, получив тем самым общее количество пикселей в изображении. В статье «Как узнать размер изображения в пикселях» описано, как можно посмотреть размер картинки;
- Затем необходимо узнать вес картинки. Сделать это можно кликнув правой кнопкой мыши по картинке, вызвав тем самым контекстное меню, в котором следует выбрать пункт «Свойства». Там и будет указан вес в байтах.
- Осталось лишь поделить вес в байтах на размер картинки в пикселях. Таким образом получится вес 1 пикселя в байтах.
Не нашли ответ? Тогда воспользуйтесь формой поиска:
Сводка типов данных | Microsoft Docs
- Чтение занимает 3 мин
В этой статье
Тип данных — это характеристика переменной, определяющая тип содержащихся в ней данных. К типам данных относятся типы, указанные в таблице ниже, а также пользовательские типы и определенные типы объектов.
Набор встроенных типов данных
В следующей таблице показываются поддерживаемые типы данных, включая размеры хранилищ и диапазоны.
Тип данных | Размер хранилища | Диапазон |
---|---|---|
Boolean | 2 байта | True или False |
Byte | 1 байт | от 0 до 255 |
Collection | Неизвестно | Неизвестно |
Currency (масштабируемое целое число) | 8 байт | от –922 337 203 685 477,5808 до 922 337 203 685 477,5807 |
Date | 8 байт | от 1 января 100 г. до 31 декабря 9999 г. |
Decimal | 14 байт | +/–79 228 162 514 264 337 593 543 950 335 без десятичной запятой +/–7,9228162514264337593543950335 с 28 разрядами справа от десятичной запятой Наименьшее ненулевое число равно +/–0,0000000000000000000000000001 |
Dictionary | Неизвестно | Неизвестно |
Double (число с плавающей запятой двойной точности) | 8 байт | от –1,79769313486231E308 до –4,94065645841247E-324 для отрицательных значений от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений |
Integer | 2 байта | от –32 768 до 32 767 |
Long (целое число Long) | 4 байта | от –2 147 483 648 до 2 147 483 647 |
LongLong (целое число LongLong) | 8 байт | от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 Действительно только для 64-разрядных платформ. |
LongPtr (целое число Long в 32-разрядных системах, целое число LongLong в 64-разрядных системах) | 4 байта в 32-разрядных системах 8 байт в 64-разрядных системах | от –2 147 483 648 до 2 147 483 647 в 32-разрядных системах от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 в 64-разрядных системах |
Object | 4 байта | Любая ссылка на Object |
Single (число с плавающей запятой одинарной точности) | 4 байта | от –3,402823E38 до –1,401298E-45 для отрицательных значений от 1,401298E-45 до 3,402823E38 для положительных значений |
String (переменная длина) | 10 байтов + длина строки | от 0 до приблизительно 2 миллиардов |
String (фиксированная длина) | Длина строки | от 1 до приблизительно 65 400 |
Variant (с числами) | 16 байт | Любое числовое значение до диапазона типа Double |
Variant (с символами) | 22 байта + длина строки (24 байтов в 64-разрядных системах) | Тот же диапазон как для типа String переменной длины |
Определяется пользователем (используя Type) | Число, необходимое для элементов | Диапазон каждого элемента совпадает с диапазоном его типа данных. |
Тип Variant, содержащий массив, требует на 12 байт больше, чем сам массив.
Примечание
Для массивов данных любого типа требуются 20 байтов памяти плюс 4 байта на каждую размерность массива, плюс количество байтов, занимаемых самими данными. Память, занимаемая данными, может быть вычислена путем умножения количества элементов данных на размер каждого элемента.
Например, данные в одномерном массиве, состоящем из 4 элементов данных Integer размером 2 байта каждый занимают 8 байтов. 8 байтов, необходимых для данных, плюс 24 байта служебных данных составляют 32 байта полной памяти, требуемой для массива. На 64-разрядных платформах массив SAFEARRAY занимает 24 бита (плюс 4 байта на оператор Dim). Элемент pvData является 8-байтным указателем, и он должен находиться в границах 8 байтов.
Примечание
Тип LongPtr не является настоящим типом данных, так как он преобразуется в тип Long в 32-разрядных средах или в тип LongLong в 64-разрядных средах. Тип LongPtr должен использоваться для представления указателя и обработки значений в операторах Declare и позволяет писать переносимый код, который может выполняться как в 32-разрядных, так и в 64-разрядных средах.
Примечание
Для преобразования одного типа строковых данных в другой используется функция StrConv.
Преобразование между типами данных
В статье Функции преобразования типов приведены примеры использования следующих функций для приведения выражения к определенному типу данных: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CLngLng, CLngPtr, CSng, CStr и CVar.
Ниже приведены страницы соответствующих функций: CVErr, Fix и Int.
Примечание
Функция CLngLng действительна только для 64-разрядных платформ.
Проверка типов данных
Чтобы проверить типы данных, ознакомьтесь с приведенными ниже функциями.
Возвращаемые значения функции CStr
Если expression | CStr возвращает |
---|---|
Boolean | Строка, содержащая значение True или False. |
Date | Строка, содержащая полный или краткий формат даты, установленный в системе. |
Empty | Строка нулевой длины («»). |
Error | Строка, содержащая слово Error и номер ошибки. |
Null | Ошибка во время выполнения. |
Другое числовое значение | Строка, содержащая число |
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Постфильтр
«22-битный цвет»… «постфильтр»… Эти лозунги от компании 3dfx нам известны уже давно. Ещё на заре аппаратной 3D-эры революционный Voodoo Graphics обладал оптимизированным 16-битным цветом. Но как, где и почему он оптимизирован, было неизвестно. Развитие шло, и только при появлении игр с реально заметной разницей между 16-битным и 32-битным цветом некоторые пользователи стали замечать, что картинка, которую дает Voodoo3, у них на мониторе и тот же скриншот различаются. Тогда-то и вспомнили и про 22-бита, и про постфильтр. Мы постараемся разобраться, как реализуется 22-битный цвет, зачем он нужен, где находится постфильтр и насколько эффективен оптимизированный 16-битный цвет, в сравнении с обычным 16-битным цветом и 32-битным цветом. Самый популярный видеочип со встроенным постфильтром — естественно Voodoo3. Его и примем за объект рассмотрения. Хотя постфильтр — это некоторая технология увеличения качества графики, и единственная связь этой технологии и фирмы 3dfx заключается в том, что именно эта фирма впервые реализовала постфильтр в своих чипах. Технология является открытой, и не исключено, что ещё какая-нибудь фирма разработает видеочип со встроенным постфильтром.
В последнее время постфильтр несколько потерял свою актуальность, особенно в свете того, что новые карты 3dfx — Voodoo4 и Voodoo5 поддерживают 32-битный цвет. Но у них же и остался 16-битный цвет, а в нем постфильтр опять-таки реализован. С другой стороны, в то время как 3dfx использует оптимизированный 16-битный цвет, ATi, похоже, вообще бросила 16-битный цвет и сосредоточилось на 32-битном. А та же nVidia держится в середине, и «дает» чистый 16-битный цвет и чистый 32-битный. Кто, из них прав, не нам судить. А мы приступим к рассмотрению постфильтра.
Глубина цвета
16-бит, 24-бита, 32-бита, True Color, High Color… Что всё это значит? Те, кто знает ответ на этот вопрос, могут перейти к следующей части статьи. Для всех остальных мы объясним, «кто есть кто».
Итак, эра компьютерной графики началась с монохромного монитора. Там всё было просто. Один бит на цвет. Единица — белая точка, ноль — черная. Один байт — восемь пикселей (вот экономия-то где!). Следующий шаг — цветные мониторы. Но каким образом — вспомнить страшно. Два бита на пиксель, или четыре цвета. Дальше уже легче. 4 бита на цвет, итого 16-цветовой режим. После — 256 цветов (один байт — одна точка). И наконец — 16-бит, впоследствии названный High Color. Но бит 16, а цветовых каналов 3. 16 на 3 не делится. А 15 на 3 делится. Первые реализации High Color имели следующую организацию цвета пикселя:
Младший (нулевой) бит не использовался. А на каждый цветовой канал приходилось по пять бит. Используя три цветовых канала (RGB) можно получить любой цвет (например, желтый цвет получается из соотношения 1:1:0, белый — 1:1:1, а черный 0:0:0).
Но пересылка и хранение цвета пикселя происходило по 2 байта, а это 16 бит, а не 15. Вскоре, нашли применение всем 16 битам. И организация цвета пикселя сменилась:
Получилось по 5 бит на красный и синий цветовые каналы, и 6 бит на зеленый. Таким образом, наиболее точно представляется зеленый цветовой канал. Почему именно зеленый? Да потому, что человеческий глаз наиболее чувствителен к перепадам зеленого цвета. Эта модель цвета пикселя High Color используется до сих пор.
Но High Color недостаточно точная система представления цвета. Человек видит около 10 миллионов цветовых оттенков, а High Color режимы передают только до 65536 цветов. Для отображения 10 миллионов цветов используются True Color режимы (отсюда и название — реальный цвет). True Color режимы для кодировки цвета используют 24-бита — по байту на цветовой канал. Это позволяет закодировать до 16 777 216 цветов, что более чем в полтора раза перекрывает естественный предел в 10 миллионов. Некоторые карты имеют 24-битное (3 байта) представление True Color цветов. Но хранить, искать и передавать информацию по три байта достаточно неудобно (и аппаратно, и, в первую очередь, программно). Деление на три трудоемко, а делить на число, образованное степенью двойки, легко. Поэтому подавляющее большинство видеокарт имеет 32-битное представление цвета. Не стоит думать, что оно более точное, чем 24-битное. Так как 24-бита хватает с избытком, то в 32-битном представлении так же на каждый цветовой канал выделяется по одному байту, а младший байт (разряды 0-7) не используется, или хранит системную или пользовательскую информацию, но реально в отображении цветов не участвует.
Такие же цветовые режимы используются и в 3D-графике. Так конечное изображение (2D) формируется либо в 16-битном, либо в 32-битном цвете. В процессе рендеринга участвуют текстуры, которые, по сути дела, являются 2D-изображениями. Обычно видеоакселераторы воспринимают 16-битные или 32-битные текстуры. Формат хранения цвета пикселя каждой текстуры совпадает с рассмотренными форматами. В 32-битной текстуре младший байт (разряды 0-7) может содержать информацию о прозрачности данной точки текстуры, образуя таким образом буфер шаблонов. В 16-битной текстуре буфер шаблонов может быть однобитным, и тогда на цветовые каналы остается 15 бит. Если недостаточно однобитного буфера шаблонов, то используют схему 4 бита на красный, 4 бита на зеленый, 4 бита на синий и 4 бита на уровень прозрачности. Конечно же, такого качества недостаточно и поэтому с текстурами, содержащими буфер шаблонов рекомендуется работать в 32-битном цвете.
Естественно, 16-битный и 32-битный режимы взаимозаменяемы. Только 16-битный цвет дает более низкое качество. 16-битную картинку без потери качества можно отобразить в 32-битном режиме. Для этого каждому цветовому каналу 32-битного цвета ассоциируется цветовой канал 16-битного цвета, который имеет меньшую разрядность. Каждый цветовой канал 16-битного записывается в верхнюю часть цветового канала 32-битного цвета.
Естественно, что процесс преобразования 32-битной картинки в 16-битную происходит с потерей качества. Так биты 27-31 из формата 32-бита записываются в биты 11-15 16-битной картинки. Далее схема перевода аналогична. Таким образом, теряются младшие биты каждого цветового канала и дискретность зеленого канала возрастает в четыре раза, а красного и синего канала возрастает в восемь раз.
Какой глубины цвета достаточно?
Для 2D изображения — все просто. High Color — приемлемое качество, True Color — идеальное. 2D изображение поступает на экран уже в готовом виде, а 3D рендерится в реальном времени. Когда 3D картинка рендерится в один-два прохода, то в High Color мы получаем такое же приемлемое качество, как и в 2D. Качество и сложность 3D-игр возрастает, появляется множество эффектов в виде дыма, тумана, облаков, огня, лучей света и т.п. Такие эффекты обычно накладываются в несколько проходов через альфа-канал на непрозрачные объекты.
Допустим, что в результате рендеринга на части экрана создался непрозрачный объект, например стена.
Теперь, пусть на этот сегмент будут наложены ещё две прозрачные «фигуры» (например освещение и дым). В результате чего должно получиться следующее:
Однако, генерация разных объектов (типа стена и дым) в пределах одного сегмента происходит за несколько проходов. В нашем случае это генерация в два прохода. В результате чего мы получаем следующую картину:
В результате чего мы получаем близкое к идеальному изображение, но нетрудно заметить отличие.
И такое различие заметно уже при двухпроходном рендеринге. А что же будет при четырехпроходном? Но самое страшное не в этом. При смешивании цветов часто получаются нецелые значения (например, два цвета 6 и 7 при смешивании с альфа-коэффициентом 0.5 дают результат 6.5). Дело в том, что в рассмотренных нами примерах мы постоянно округляли полученные значения до ближайшего целого. Большинство же видеокарт в алгоритме смешивания не используют избыточную логику, вследствие чего округления не происходит и результат получается удручающий:
Сравним все три полученные результаты — однопроходный с округлением (идеальный), двухпроходный с округлением и двухпроходный без округления:
Как видим, наиболее отличный от идеала последний. В первых двух случаях границы между цветами максимально плавные, тогда как в последнем такое правило нарушается и уже сам по себе неидеальный 16-битный цвет выдает ещё более грубую картинку. Большинство видеокарт в 16-битном режиме не используют округление при смешивании, однако для повышения качества используют технологию дизеринга (а некоторые даже не используют дизеринг).
В 32-битном цвете ситуация немного другая. Некоторые видеокарты последних поколений используют избыточную логику для округления результата при смешивании цветов и качество графики при этом получается очень высоким. Другие видеокарты используют все 32 бита, где, как и в обычной схеме, в старших 24 битах хранятся реальные цвета, а биты избыточности (дробные части цветов) хранятся в младших 8 битах. Такая схема наиболее предпочтительна, но, к сожалению, просто мизерная часть современных видеоакселераторов поддерживают данную схему. И, наконец, некоторые видеокарты (их, слава богу, меньшинство) используют схему смешивания без округления с дизерингом (как и в 16-битном цвете). Есть ещё несколько схем реализации смешивания цветов, но я лично не встречал видеокарты, реализующие подобные алгоритмы, поэтому рассматривать их не будем.
В итоге, уже при двухпроходном рендеринге мы наблюдаем некоторое отклонение от нормы как в 16-битном, так и 32-битном цвете. Современные программы создают сцену за относительно малое число проходов, и для нас 32-битный цвет кажется идеальным. Но, с усложнением сцен мы сможем увидеть недостатки и в 32-битном цвете. А такое будущее уже не за горами, — уже в DOOM-3 планируется рендеринг с наложением 6-8 текстур на треугольник, и это без учета дополнительных эффектов типа блики, дым, огонь, облака и им подобных. И при реализации трилинейной фильтрации используются два текстурных модуля акселератора, а это значит, что при рендеринге такого «сложного» треугольника придется накладывать уже 12-16 текстур, а ни один современный акселератор в один проход этого не сделает. Сам же Джон Кармак, постоянно работая с главными разработчиками видеочипов, предлагает в будущих проектах использовать 64-битный цвет. Это поможет помимо 8 бит реального цвета на цветовой канал хранить ещё и 8 бит дробной части для каждого цветового канала, тем самым обзавестись идеальным качеством. 64-битный цвет дает огромный запас по избыточности, что делает его высококачественным ещё как минимум на шесть лет. Но, к сожалению, ни один современный непрофессиональный видеочип не поддерживает 64-битного цвета, и в ближайшем будущем такого видеочипа не ожидается.
Как изображение из видеопамяти попадает на экран
Те, кто знает ответ на этот вопрос, могут переходить к чтению следующей части. Остальных же прошу слушать внимательнее, потому что мы все ближе и ближе подходим к сущности работы постфильтра.
Итак, идея в том, что обычный CRT-монитор получает аналоговые сигналы, а в памяти видеоадаптера информация хранится в цифровом виде. Front Buffer должен постоянно и непрерывно показываться на мониторе. А его показом занимается RAMDAC. А точнее, последовательным преобразованием цифрового значения каждой его точки в аналоговый сигнал. Обычный RAMDAC состоит из двух основных блоков. Первый — блок выборки из памяти. Он выбирает из участка памяти, где храниться Front Buffer, последовательно цвета всех пикселей (для упрощения не будем рассматривать 1-, 2-, 4- и 8-битные цветовые режимы). Обычно он же временно сохраняет эти данные в кэше, что ускоряет процесс обращения к памяти. Главная задача этого блока постоянно предоставлять информацию о цветах следующего пикселя в порядке следования луча по экрану монитора — слева направо, сверху вниз. Следующий блок — это DAC (по-русски — ЦАП). Он синхронизируется с монитором, и каждый такт выводит комбинацию аналоговых сигналов, соответствующих цвету точки, полученному от предыдущего блока. Казалось бы, все просто. Но, как мы помним, видеокарта может работать в разных цветовых режимах. Поэтому большинство видеоакселераторов содержат в блоке DAC несколько наборов логики. Чаще всего это DAC8, DAC15, DAC16, DAC24 и DAC32 (DAC8 отвечает за палитезированные режимы и поэтому работает как с 256-цветовым режимом, так и с 16-, 4- и 1-цветовым). Некоторые видеокарты могут не содержать некоторые наборы (например, DAC15 или DAC24).
Вот и всё. Вот так работает RAMDAC, и так часть видеопамяти под названием Front Buffer попадает к нам на экран.
Дизеринг
Теперь перейдем к технологии дизеринга (dithering). Так как она нашла свое основное применение именно в 16-битном цвете, то его и рассмотрим. Каждый текстурный конвейер в видеочипах, работающих с High Color режимом, имеет разрядность 24 бита, т.е. по 8 бит на цветовой канал. Такую же разрядность имеет и модуль смешивания цветов. Эффективная же их разрядность 22-бита (знакомо?). Это значит, что какую бы разрядность не имели эти модули, на их выходе реально используются только 22 бита. То есть 7 бит на красную, 8 бит на зеленую и 7 бит на синюю составляющие. Но, как мы помним, мы сейчас генерируем 16-битную картинку, а это значит, что 6 бит у нас лишние. Их можно просто отбросить. Если сделать это, то есть при пересылке не пересылать два младших бита от каждой цветовой составляющей, то мы получим 16-битную картинку без дизеринга. А выглядит это так:
Бяка, одним словом. Слишком явные границы между соседними цветами. А ведь смешивание происходит с более высокой точностью, и именно эту точность мы «отбрасываем» вместе с шестью «лишними» битами. А ведь их можно учитывать. И делается это очень просто. Рассмотрим пример для красной составляющей (как мы видим, наша картинка именно красного цвета, а на самом деле это кусок неба из Quake3:Arena). После генерации реального цвета точки на части выходов блока смешивания появляется 8 бит определяющие красный цвет. Из них мы точно берем старшие шесть бит. Например, эти шесть бит определяют значение 27. Но нам так же интересны и оставшиеся два бита. Если там ноль, значит мы имеем дело с реальным цветом 27, его и ставим. Если два младших бита равны единице, то реальный цвет 27.25, т.е. на четверть больше. И тогда, если точка ставиться на нечетную координату экрана X и четную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности, в нашем случае 28. Таким образом, на поле из цвета 27 каждая четвертая точка имеет значение 28, т.е. среднее значение цвета поля получается 27.25, что нам и нужно. Если два младших бита, равны 10b (двум), то реальный цвет точки 27.5. Таким образом, уже каждая вторая точка должна иметь значение на единицу больше. Условие усложняется. Если точка ставится на нечетную координату экрана X и четную координату экрана Y, или на четную координату экрана X и нечетную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности (у нас 28). Аналогично строится условие, в случае, когда младшие два бита равны 11b (тройке). Если точка ставится на нечетную координату экрана X и четную координату экрана Y, или на нечетную координату экрана X и четную координату экрана Y, или на четную координату экрана X и четную координату экрана Y, то на это место ставится цвет на единицу больший по интенсивности. В этом случае на поле из цвета 28 остается каждая четвертая точка 27. И наша картинка (часть неба Quake3) будет выглядеть уже иначе:
Это та же картинка, но уже с дизерингом. Эта картинка ещё и увеличена, для того чтобы была отчетливее видна сеточка дизеринга. В реальном масштабе сеточка заметна ещё меньше, так как глаз видит уже достаточно однородное поле. Отодвиньтесь дальше и вы сами увидите это.
Алгоритм дизеринга можно представить и графически. Таблица ниже показывает, как изменяются четыре соседних точки в зависимости от двух младших битов. В позициях точек указано приращение к базовому цвету, записанному в старших битах.
Такая схема дизеринга называется Ordered. Именно её и использует Voodoo3. Существуют и другие способы дизеринга (другие маски, алгоритмы), но именно Ordered наиболее эффективен, если в видеочипе встроен постфильтр.
Постфильтр
Посмотрим ещё раз на небо Quake3, а точнее на его часть.
Мы видим, как работал дизеринг, и можем с большой уверенностью сказать, какие цвета на самом деле были на выходе блока смешивания, и со стопроцентной вероятностью сказать какие цвета «увидит» наш глаз (не забываем о том, что глаз смешивает соседние невыделенные цвета). Если мы можем определить, какие цвета должны стоять на месте каждого поля из точек, почему это не может видеокарта? Так заставим же её это сделать. Блок DAC16 модуля RAMDAC читает именно такую картинку. Естественно в его кэш поступает не вся картинка сразу, а только несколько горизонтальных линий. Минимальное количество линий две. Как известно, Voodoo Graphics использует маску постфильтра 1×4. Модели 3dfx, начиная с Voodoo2 и выше, используют маску 2×2. DAC16, используя дополнительную логику, сравнивает соседние четыре пикселя, и увидев знакомую «шахматку» смешивает эти цвета. Естественно смешивается не любые четыре соседних цвета, а только те, которые могли создаться дизерингом. То есть дополнительная логика ищет цвета отличающиеся друг от друга на малое значение. Найдя такие, она проверяет их на соответствие таблице Ordered. Зачем? Ну, представим себе, что логика нашла четыре точки, три из которых имеют одинаковый цвет, а один чуть светлее. Естественно таких комбинаций может быть четыре. Но только одна из них могла быть вызвана постфильтром. Эта более светлая точка должна стоять на координатах с нечетным значением X и четным значением Y. Если условия четности выполняются, то логика считает, что это поле продукт дизеринга и смешивает четыре цвета с повышенной точностью. Таким образом, возможно восстановление двух потерянных бит на выходе блока смешивания и восстановления их с точностью в 22 бита. Дополнительная логика DAC16 и называется постфильтром. Постфильтр производит обработку изображения «на лету» и поэтому не влияет на производительность системы. Для повышения качества постфильтрация производится для каждого цветового канала независимо, а не для всего цвета пикселя. Вероятность смешивания цветов, полученных не дизерингом, крайне мала (на практике меньше одного процента), и даже если смешивание таких цветов произойдет — ничего в этом страшного нет, так как наш глаз так и так был бы обманут и самостоятельно смешал бы соседние цвета. Таким образом, постфильтр — это аппаратно-программный комплекс повышения визуализации графического изображения.
В общих словах схема работы такая. Внутренний рендеринг видеокарты Voodoo3 происходит с 22-битной точностью цвета. При этом в память видеокарты (во Frame Buffer) записывается 16-битная отрендеренная картинка с использованием схемы дизеринга на основе признаков четности координат. После завершения рендеринга RAMDAC читает готовое изображение в кэш и на основе признаков ближних цветов для каждого цветового канала и признаков четности координат восстанавливает 22-битный цвет. На выходе RAMDAC получается набор аналоговых сигналов, которые поступают на монитор. Всего комбинаций аналоговых сигналов — 4194304 (произведенные от 22-битов). Это более чем в два раза меньше, чем способен различить человеческий глаз, но гораздо больше, чем реальный 16-битный цвет (в 64 раза точнее).
Уровень (глубина) постфильтрации
Все просто, не так ли? С учетом признаков четности смешиваются мало отличающиеся цвета с маской 2×2. А что значит мало отличающиеся? Для конечной картинки созданной без наложения нескольких текстур на один участок экрана или с наложением в один проход — все понятно. Разница между отдельными цветовыми каналами в пределах одного поля точек, созданных в результате дизеринга, будет равно единице (см. таблицу схемы Ordered выше). А если наложение происходит за несколько проходов? При использовании буфера шаблонов на каждый цветовой канал текстуры приходится по 4 бита, а это значит, что дискретность (а следовательно и разница между «соседними» цветами) возрастет в два/четыре раза. Разницу (глубину) между цветами, которые постфильтр должен считать соседними, устанавливают драйверами. Это значение называется уровнем или глубиной постфильтра. Глубина постфильтра Voodoo3 равна восьми. Кроме того, на создавшийся регион с некоторой сеткой дизеринга (например, светлые единичные точки) может быть наложено изображение, имеющее другую сетку (например, темные единичные точки). Поэтому при более глубоком уровне фильтрации обычной таблицы Ordered недостаточно и необходимо создать новую с производными сетками, получившихся в результате наложения различных и одинаковых сеток, а так же в результате более грубого представления прозрачных текстур.
Таблица сеток постфильтрации с глубиной восемь очень большая, и для того, чтобы мы просто имели представление о полном наборе сеток, ниже приводится такой для постфильтра с глубиной фильтрации равной трем.
При глубине постфильтра равной трем — вот все комбинации четырех соседних пикселей, которые могут создаться в результате дизеринга однопроходного и мультипроходного наложения. Все остальные комбинации создаются не дизерингом. Аналогично составляется таблица соответствия для постфильтрации с другим уровнем (например, для уровня восемь). Алгоритм поиска и сравнения маски упрощается тем, что из четырех соседних цветов, находящейся в маске слева снизу — самый яркий, а справа снизу — самый темный. Как уже говорилось, сравнение происходит для каждого цветового канала независимо, что положительно сказывается на качестве общей картинки. Естественно, чем выше уровень фильтрации, тем с большей глубиной наложения текстур она происходит. Многие замечали в 16-битном цвете при наложении на одно и то же место нескольких полупрозрачных текстур, появляющуюся сеточку дизеринга. Чем больше произошло наложений, тем заметнее сеточка (увеличивается разность между соседними цветами). Например, дым от ракеты в Quake3. Если Voodoo3 производит постфильтрацию с уровнем восемь, то такой постфильтр уберет сеточку на месте наложения максимум восьми текстур. Однако, чем выше уровень фильтрации, тем выше вероятность смешивания соседних цветов, получившихся не в результате дизеринга. Экспериментально была найдена оптимальная глубина постфильтра. Как ни странно, она равна восьми. При уменьшении уровня фильтрации проявляется сеточка на эффектах. Уже при уровне равным шести дым от ракет в Quake3 был явно решетчатым. При увеличении уровня — появляются артефакты, указывающие на смешивание цветов, которые не должны смешиваться и общая четкость картинки резко ухудшается. Дальнейшее рассмотрение работы постфильтра будем проводить для глубины равной восьми.
Полезность постфильтра
Итак, с теорией разобрались, а как же дела обстоят на практике? Посмотрим на следующие скриншоты. Верхнее изображение — чистый 16-битный цвет, а нижнее с постфильтрацией.
Посмотрим на наиболее интересные фрагменты изображения (начиная справа и по часовой стрелке), сравнивая изображения без постфильтрации (справа) и прошедшие через постфильтр (слева).
Здесь можно отметить отсутствие решетки на небе и на рамке меню. Это же привело к увеличению размеров пикселей. Но в целом картинка смотрится несколько лучше, так как помимо увеличения размера пикселей, разница между границами цветов уменьшилась, так как фактически количество цветов увеличилось в четыре раза. Картинке стала присуща плавность границ между соседними цветами, несмотря на укрупнение пикселей на этих границах. Границы между соседними объектами не изменились. Рамка меню нисколько не изменила свою форму. Сильно заметная сетка на прозрачной части меню была полностью убрана, что существенно отразилось на увеличении качества.
Обратим внимание на цифру «9». Избавившись от решетки, покрывающей девятку, постфильтр не сумел избавиться от «полосатости» цифры. Визуально качество практически не изменилось, а возможно стало немного выше. Полностью убрать решетку со шлема не удалось. Однако даже обработка, прошедшая на части шлема, сделала изображение более плавным, в частности исчезли выбивающиеся из общей картины единичные пиксели. На заднем фоне ворота телепорта (справа) имеют определенный рисунок, который ничуть не пострадал в результате фильтрации, опять же приобретая определенную плавность цветов. Левая часть заднего фона имеет более сложный рисунок, и с ним постфильтр уже не справился, хотя чисто субъективно отфильтрованная картинка мне нравится больше.
А вот тут картина неоднозначная. Да, решетка убрана, но частично. И эта частичность проявляется в виде отдельных пикселей другого цвета на равномерном фоне. Да и рамка меню несколько пострадала. Границы формы стали немного угловаты. Но, фрагмент увеличен, и на картинке «в натуре» эти погрешности особо не заметны. К ним нужно присматриваться, чтобы их найти. Такие явные артефакты проявляются только на полупрозрачных объектах, полученных многократным наложением, а эти объекты в современных программах создают преимущественно динамические эффекты. Поэтому поймать артефакты очень тяжело. Так, (при снятой паузе) телепорт переливался множеством цветов, и в целом заметить ошибки постфильтрации просто не успеваешь.
От этой картинки достаточно приятные впечатления, однако опять по левой кромке рамки меню несколько «оквадратилась» форма. Опять остались единичные пиксели, но они малозаметны. А ворота, приобретя плавность цветов, унаследовали полосатость, за счет того же укрупнения пикселей. Но, опять же на не увеличенной полной картинке все выглядит достаточно мило.
Рассмотрим ещё несколько фрагментов. На этот раз не увеличенных, чтобы составить впечатление от реальной картинки (всегда верхний скриншот это без постфильтра, а нижний с постфильтром).
Трудно найти отличия, однако то, что снизу мне нравиться больше.
Задний план, а так же реализация дыма и вспышек плазмы с постфильтрации выглядят более эффектно.
А вот этот портал постфильтру обработать удалось несколько хуже, чем предыдущий, однако визуальное качество картинки всё же повысилось.
Здесь со своей задачей постфильтр справился просто блестяще.
Существует мнение, что постфильтр приводит к некоторому размытию картинки. Для того чтобы проверить этот слух, рассмотрим «замыленную» часть картинки прошедшую постфильтрацию (нижняя), и не прошедшую (верхняя).
Как видим, этот артефакт присутствует, однако, на не отфильтрованном фрагменте разглядеть дополнительные детали все же не удается. То есть постфильтр не причастен к факту размытия картинки. Тем более, что на расположенной чуть дальше нечеткого пола стены в точности сохранены все детали. То, что постфильтр замыливает изображение — оказалось не больше чем очередным мифом.
Спрашивается, зачем всё это нужно? Не лучше ли использовать настоящий 32-битный цвет? На самом деле не всегда лучше. Как известно, главная болезнь современных видеокарт — малая полоса пропускания шины данных. А для 16-битного цвета необходима полоса в два раза уже, чем для 32-битного. Таким образом, там, где видеокарта в 32-битном цвете уже не справляется (а такое ПО уже существует для самых мощных современных ускорителей) её можно перевести в 16-битный цвет. И приятно, если в этом режиме работает постфильтр, так как визуально качество картинки несколько увеличивается.
Однако я не могу не удержаться и не продемонстрировать насколько важен 32-битный цвет в серьезных сценах.
nVIDIA RivaTNT2 16-bit 3dfx Voodoo3 16-bit
nVIDIA RivaTNT2 32-bit
Действительно, за 32-битным цветом будущее. Но, возникает логичный вопрос, почему бы не использовать постфильтр и в 32-битном цвете. Ответ прост. Там он бесполезен. Не забываем, что постфильтр увеличивает количество цветов с 16-бит до 22-бит. Следовательно, в True Color режимах он будет увеличивать количество цветов с 24-бит до 30-бит, и даже если он будет включен, то человеческий глаз просто не увидит разницы.
Та же 3dfx сейчас увлеклась 32-битным цветом и перестала оптимизировать 16-битный цвет, а совершенствоваться ещё есть куда. Так, можно использовать другие маски (не Ordered), увеличить размер маски (хотя бы до 4×4, правда при этом придется существенно усложнить алгоритм фильтрации) и многое другое. Но, как говорилось, за 32-битным цветом будущее, и так как 16-битный цвет у 3dfx уже оптимизирован, им теперь со спокойной душой можно заняться 32-битным цветом. Очень жаль, что другие компании так и не обратили внимания на постфильтр в 16-битном режиме, ведь при минимуме затрат это может привести к существенному увеличению качества 16-битной графики. Ведь процесс перехода к эре True Color игр будет проходит плавно и ещё достаточно долгое время. Для тех кому постфильтр мешает, можно просто отключить его в драйверах. Драйверами теоретически можно и изменять глубину фильтрации, однако 3dfx не включила эту опцию в драйверах (может и к лучшему).
Возникает последний вопрос. Есть ли альтернатива постфильтру? Есть, и она уже существует. Это FSAA (антиалиазинг). При правильной реализации, конечно. FSAA может ещё много на что повлиять. Это избавление от постфильтра, алиазинга, бесплатная анизотропная фильтрация и многое другое. Пока же FSAA не бесплатен, можно довольствоваться постфильтром. Хотя все же будущее за FSAA. Но это уже совсем другая история…
Иллюстрированный самоучитель по Adobe Photoshop CS2 › Цвет › Режим Indexed Color и глубина цвета [страница — 121] | Самоучители по графическим программам
Режим Indexed Color и глубина цвета
Глубина цвета – это еще один важнейший параметр растровых изображений. Сразу оговорим, что он тесно связан с архитектурой существующих компьютеров и исторически сложившимися стандартами. Глубина цвета выражается в битах и показывает, сколько бит памяти требуется для хранения одного пикселя изображения.
Компьютер имеет дело с цифровой информацией в двоичной системе счисления. Двоичный разряд может иметь два значения: единица или ноль (как вы знаете, десятичный разряд может принимать десять значений от нуля до девяти). Этот наименьшая элементарная информации называется битом. Восемь двоичных разрядов, восемь бит, образуют байт. Байт может принимать 28 = 256 значений (восемь десятичных разрядов могут принимать 108 = 100 000 000 значений). Почему байт составляют именно восемь бит? Да просто потому, что восемь разрядов имели первые микропроцессоры. Разрядность современных микропроцессоров для совместимости с их предшественниками тоже кратна восьми. Для больших значений используются «псевдодесятичные» приставки: 1024 байт =1 Кбайт, 1024 Кбайт=1Мбайт.
В памяти компьютера информация о цвете пикселей изображения тоже хранится в двоичном представлении. Поэтому для быстрой ее обработки пиксел кодируется одним или несколькими байтами. Единственное исключение составляют монохромные изображения. Для хранения информации о цвете пикселя такого изображения вполне достаточно одного бита, ведь пиксель может иметь всего два цвета. Таким образом, глубина цвета монохромных изображений составляет 1 бит. Зная, сколько памяти требуется для хранения одного пикселя изображения (то есть глубину цвета), легко рассчитать, сколько памяти займет все изображение. Например, изображение размером 100х100 пикселей займет 100 пикселей x 100 пикселов х 1 бит = 10 000 бит приблизительно 1.2 Кбайт. Объем памяти, занимаемый цветными изображениями, зависит от количества имеющихся в них каналов. Каждый канал является полутоновым, то есть кодируется одним байтом. Если каналов три, как в изображениях в модели RGB или LAB, то на один пиксел приходится 8 бит х 3 =24 бита.В модели CMYK четыре канала и глубина цвета равна 8 бит х 4 = 32 бита. Таким образом, память, занимаемая цветными изображениями, в три или четыре раза больше, чем для полутоновых изображений: 100 пикселей х 100 х 24 бит = 240 000 бит приблизительно 29.3 Кбайт или 100 х 100 х 32 бит = 320 000 бит = 39.1 Кбайт.
Говоря о глубине цвета для типов растровых изображений, мы имели в виду наиболее употребительные изображения с восьмибитными каналами. Adobe Photoshop допускает ограниченное редактирование изображений с 16 битами на канал (Выделение областей, Feather, Клонирующий штамп (Rubber Stamp), в общем, очень мало возможностей.) Нетрудно вычислить, что цветное изображение с восьмибитными каналами может содержать максимум 224=16.7 млн. цветов. С шестнадцатибитными каналами количество цветов увеличивается до 216×3 = 248= 281 млрд. Такое количество цветов имеет смысл использовать лишь в том случае, если ваш сканер поддерживает 48-битный цвет. Пока это под силу только очень дорогим профессиональным сканерам.
Для перевода из 8-ми битного цвета в 16-ти битный и наоборот предназначены одноименные команды из подменю Mode из подменю Image. (8 bits/channel и 16 bits/channel). Еще один тип изображений › индексированные изображения. Это один из первых способов представления цветных точечных изображений. Он широко применялся в те времена, когда компьютеры были не столь мощными, а видеоадаптеры, поддерживающие более 256 цветов, являлись роскошью. Индексированное изображение как раз и рассчитано на хранение не более чем 256 цветов. Цвета, использованные в индексированном изображении, могут быть произвольными, но их общее количество не должно превышать указанного. Какие именно цвета использованы в изображении, определяется его палитрой. Палитра индексированного изображения представляет собой нумерованный список цветов и хранится в файле вместе с изображением. Каждый байт индексированного изображения хранит номер цвета в палитре, а не значения RGB-компонентов цвета. В результате на один пиксель цветного индексированного изображения приходится не 24 бита, а всего 8.
Палитра индексированного изображения может иметь не только 256 цветов, но и меньшее их количество. Сокращение палитры дает возможность сократить и размер файла. Например, если палитра будет состоять не из 256, а из 64 цветов, то для кодирования одного пикселя потребуется только 6 бит, а не 8. В результате размер изображения уменьшится на четверть. Таким образом, глубина цвета индексированных изображений может принимать целые значения в диапазоне от 1 до 8. Компактность представления цветов в индексированных изображениях объясняет нынешнюю сферу их применения – Web-дизайн.
Индексированные изображения получают из полноцветных сокращением количества использованных цветов. Иными словами, изображение приводится к ограниченной палитре. Какие из цветов изображения попадут в палитру, определяется особыми алгоритмами или указывается непосредственно. Первый способ используют, когда необходимо достичь наилучшего приближения индексированного изображения к цветам оригинала. Ко второму прибегают, если хотят достичь одинакового воспроизведения цветов в разных программах или на разных компьютерах. Для перевода изображения в индексированное необходимо выбрать пункт Indexed Color из подпункта Mode меню Image. В ответ получите такое окно:
Структура WAV файла — Audio Coding
Представляем вашему вниманию статью с подробным разбором заголовка WAV-файла и его структуры.
Теория
Итак, рассмотрим самый обычный WAV файл (Windows PCM). Он представляет собой две, четко делящиеся, области. Одна из них — заголовок файла, другая — область данных. В заголовке файла хранится информация о:
- Размере файла.
- Количестве каналов.
- Частоте дискретизации.
- Количестве бит в сэмпле (эту величину ещё называют глубиной звучания).
Но для большего понимания смысла величин в заголовке следует ещё рассказать об области данных и оцифровке звука. Звук состоит из колебаний, которые при оцифровке приобретают ступенчатый вид. Этот вид обусловлен тем, что компьютер может воспроизводить в любой короткий промежуток времени звук определенной амплитуды (громкости) и этот короткий момент далеко не бесконечно короткий. Продолжительность этого промежутка и определяет частота дискретизации. Например, у нас файл с частотой дискретизации 44.1 kHz, это значит, что тот короткий промежуток времени равен 1/44100 секунды (следует из размерности величины Гц = 1/с). Современные звуковые карты поддерживают частоту дискретизации до 192 kHz. Так, со временем разобрались.
Амплитуда и сэмплы
Теперь, что касается амплитуды (громкости звука в коротком промежутке времени). Амплитуда выражается числом, которое занимает в файле 8, 16, 24, 32 бита (теоретически можно и больше). От точности амплитуды, я бы сказал, зависит точность звука. Как известно, 8 бит = 1 байту, следовательно, одно значение амплитуды в какой-то короткий промежуток времени в файле занимает 1, 2, 3, 4 байта соответственно. Таким образом, чем больше число занимает места в файле, тем шире возможный диапазон значений для этого числа, а значит и больше точность амплитуды.
Для PCM-файлов точность (или разрядность) может быть следующей:
- 1 байт / 8 бит — -128…127
- 2 байта / 16 бит — -32 760…32 760
- 3 байта / 24 бита — -1…1 (с плавающей точкой)
- 4 байта / 32 бита — -1…1 (с плавающей точкой)
Но список возможных разрядностей на самом деле весьма шире, здесь представлены лишь наиболее популярные.
Совокупность амплитуды и короткого промежутка времени носит название сэмпл.
Заголовок
Итак, давайте рассмотрим первую часть WAV-файла подробнее. Следующая таблица наглядно показывает структуру заголовка:
Местоположение | Поле | Описание |
---|---|---|
0…3 (4 байта) | chunkId | Содержит символы «RIFF» в ASCII кодировке 0x52494646 . Является началом RIFF-цепочки. |
4…7 (4 байта) | chunkSize | Это оставшийся размер цепочки, начиная с этой позиции. Иначе говоря, это размер файла минус 8, то есть, исключены поля chunkId и chunkSize. |
8…11 (4 байта) | format | Содержит символы «WAVE» 0x57415645 |
12…15 (4 байта) | subchunk1Id | Содержит символы «fmt » 0x666d7420 |
16…19 (4 байта) | subchunk1Size | 16 для формата PCM. Это оставшийся размер подцепочки, начиная с этой позиции. |
20…21 (2 байта) | audioFormat | Аудио формат, список допустипых форматов. Для PCM = 1 (то есть, Линейное квантование). Значения, отличающиеся от 1, обозначают некоторый формат сжатия. |
22…23 (2 байта) | numChannels | Количество каналов. Моно = 1, Стерео = 2 и т.д. |
24…27 (4 байта) | sampleRate | Частота дискретизации. 8000 Гц, 44100 Гц и т.д. |
28…31 (4 байта) | byteRate | Количество байт, переданных за секунду воспроизведения. |
32…33 (2 байта) | blockAlign | Количество байт для одного сэмпла, включая все каналы. |
34…35 (2 байта) | bitsPerSample | Количество бит в сэмпле. Так называемая «глубина» или точность звучания. 8 бит, 16 бит и т.д. |
36…39 (4 байта) | subchunk2Id | Содержит символы «data» 0x64617461 |
40…43 (4 байта) | subchunk2Size | Количество байт в области данных. |
44… | data | Непосредственно WAV-данные. |
Вот и весь заголовок, длина которого составляет 44 байта.
Подводные камни
Выше мы рассмотрели простейший случай заголовка с одной подцепочкой перед областью данных. Но на практике встречаются и более сложные или даже непредвиденные сценарии, с которыми можно увязнуть надолго.
В
chunkSize
лежит заведомо слишком большое значение. Такое происходит, когда вы пытаетесь читать данные в режиме стриминга. Например, декодер LAME при выводе результата декодирования вSTDOUT
в этом поле возвращает значение0x7FFFFFFF + 44 - 8
, а вsubchunk2Size
—0x7FFFFFFF
(что равно максимальному значению 32-разрядного знакового целочисленного значения). Это объясняется тем, что декодер в таком режиме выдаёт результат не целиком, а небольшими наборами данных и не может заранее определить итоговый размер данных.Подцепочек может быть больше, чем две, например, при попытке декодировать аудио универсальным декодером ffmpeg 4.1.3
ffmpeg -i example.mp3 -f wav example.wav
в декодированном файле помимо рассмотренных подцепочекfmt
иdata
будет содержаться ещё однаLIST
перед областью данных. Таким образом, когда вам понадобится добраться до данных, вам потребуется пропустить ненужные подцепочки, пока не встретитсяdata
. Это будет сделать не слишком сложно, так как можно читать ID подцепочки и её размер, и если она неdata
, то пропускать данные, основываясь на её размере.
Блок данных
В моно варианте значения амплитуды расположены последовательно. В стерео же, например, сначала идет значение амплитуды для левого канала, затем для правого, затем снова для левого и так далее.
Заметка о типах данных
При чтении заголовка можно применять разные типы данных. Например, в Си (MSVS) вместо массива char[4]
можно использовать __int32
или DWORD
, но тогда сравнение с какой-либо строковой константой, к примеру может оказаться не очень удобным. Также хотелось бы предостеречь вас на тему 64-битных операционных систем. А именно: всегда стоит помнить, что в языке Си тип переменной int в 64-битной системе будет иметь длину 8 байт, а в 32-битной — 4 байта. В таких случаях можно воспользоваться вышеупомянутым типом переменной __int32
или __int64
, в зависимости от того, какой размер переменной в памяти Вам необходим. Существуют типы __int8
, __int16
, __int32
и __int64
, они доступны только для MSVC++ компилятора как минимум 7-й версии (Microsoft Visual Studio 2003.NET), но зато Вы не ошибетесь с выбором размера типа данных.
Примеры реализации
На языке C++
На языке C#
На Node.js из STDIN
24 бит в байты | 24 b к B
Определение единиц
Давайте посмотрим, как определяются обе единицы в этом преобразовании, в данном случае биты и байты:
Бит (b)Бит (сокращенная двоичная цифра) — это основная единица информации, используемая в вычислительной технике и цифровой связи. Двоичная цифра может иметь только одно из двух значений и может быть физически представлена устройством с двумя состояниями. Эти значения состояния чаще всего представлены как 0 или 1.Два значения двоичной цифры также можно интерпретировать как логические значения (истина / ложь, да / нет), алгебраические знаки (+/–), состояния активации (вкл / выкл) или любой другой двузначный атрибут. Соответствие между этими значениями и физическими состояниями нижележащего хранилища или устройства является условием, и разные назначения могут использоваться даже в одном и том же устройстве или программе. Длина двоичного числа может называться его битовой длиной. В теории информации один бит обычно определяется как информационная энтропия двоичной случайной величины, равная 0 или 1 с равной вероятностью, или информация, которая получается, когда значение такой переменной становится известным.В квантовых вычислениях квантовый бит или кубит — это квантовая система, которая может существовать в суперпозиции двух классических (то есть неквантовых) значений битов. Символ двоичной цифры либо просто бит (рекомендуется стандартом IEC 80000-13: 2008), либо строчная буква b (рекомендуется стандартами IEEE 1541-2002 и IEEE Std 260.1-2004). Группа из восьми двоичных цифр обычно называется одним байтом, но исторически размер байта строго не определен.
Байт (B)Байт — это единица цифровой информации, которая обычно состоит из восьми битов.Исторически байт представлял собой количество битов, используемых для кодирования одного символа текста в компьютере, и по этой причине это наименьшая адресуемая единица памяти во многих компьютерных архитектурах. Размер байта исторически зависел от оборудования, и не существовало каких-либо определенных стандартов, которые требовали бы этого размера — как известно, в прошлом использовались байты размером от 1 до 48 бит. Современный де-факто стандарт восьми битов, как описано в ISO / IEC 2382-1: 1993, представляет собой удобную степень двойки, допускающую значения от 0 до 255 для одного байта.Международный стандарт IEC 80000-13 кодифицировал это общее значение. Многие типы приложений используют информацию, представленную в восьми или меньшем количестве бит, и разработчики процессоров оптимизируют это общее использование. Популярность основных коммерческих вычислительных архитектур способствовала повсеместному принятию восьмибитного размера. Символ единицы для байта был обозначен как заглавная буква B Международной электротехнической комиссией (IEC) и Институтом инженеров по электротехнике и радиоэлектронике (IEEE) в отличие от бита, чей символ IEEE является строчной буквой b.В международном масштабе единичный октет, символ o, явно обозначает последовательность из восьми битов, устраняя двусмысленность байта.
преобразовать 24 байта в бит
Насколько велик 24 байта? Что такое 24 байта в битах? Преобразование 24 байтов в биты.
Из БитыБайтыГигабайтыКилобайтыМегабитыМегабайтыПетабайтыТерабайты
К БитыБайтыГигабайтыКилобайтыМегабитыМегабайтыПетабайтыТерабайты
обменные единицы
24 байта =192 бит
(точный результат)
Отобразить результат как NumberFraction (точное значение)
Байт равен 8 битам.Он может хранить до 2 8 (256) различных значений или один символ текста ASCII. Бит — основная единица информации. Он может иметь только два возможных значения: 0 или 1.байтов в биты, преобразование
(некоторые результаты округлены)
байта | бит |
---|---|
24,00 | 192 |
24.01 | 192,08 |
24,02 | 192,16 |
24,03 | 192,24 |
24,04 | 192,32 |
24,05 | 192,4 |
24,06 | 192,48 |
24,07 | 192,56 |
24,08 | 192,64 |
24,09 | 192,72 |
24,10 | 192.8 |
24,11 | 192,88 |
24,12 | 192,96 |
24,13 | 193,04 |
24,14 | 193,12 |
24,15 | 193,2 |
24,16 | 193,28 |
24,17 | 193,36 |
24,18 | 193,44 |
24,19 | 193,52 |
24.20 | 193,6 |
24,21 | 193,68 |
24,22 | 193,76 |
24,23 | 193,84 |
24,24 | 193,92 |
байта | бит |
---|---|
24,25 | 194 |
24,26 | 194.08 |
24.27 | 194,16 |
24,28 | 194,24 |
24,29 | 194,32 |
24,30 | 194,4 |
24,31 | 194,48 |
24,32 | 194,56 |
24,33 | 194,64 |
24,34 | 194,72 |
24,35 | 194,8 |
24,36 | 194.88 |
24,37 | 194,96 |
24,38 | 195,04 |
24,39 | 195,12 |
24,40 | 195,2 |
24,41 | 195,28 |
24,42 | 195,36 |
24,43 | 195,44 |
24,44 | 195,52 |
24,45 | 195,6 |
24.46 | 195,68 |
24,47 | 195,76 |
24,48 | 195,84 |
24,49 | 195.92 |
байта | бит |
---|---|
24,50 | 196 |
24,51 | 196,08 |
24,52 | 196,16 |
24.53 | 196,24 |
24,54 | 196,32 |
24,55 | 196,4 |
24,56 | 196,48 |
24,57 | 196,56 |
24,58 | 196,64 |
24,59 | 196,72 |
24.60 | 196,8 |
24,61 | 196,88 |
24,62 | 196.96 |
24,63 | 197,04 |
24,64 | 197,12 |
24,65 | 197,2 |
24,66 | 197,28 |
24,67 | 197,36 |
24,68 | 197,44 |
24,69 | 197,52 |
24,70 | 197,6 |
24,71 | 197,68 |
24.72 | 197,76 |
24,73 | 197,84 |
24,74 | 197,92 |
байта | бит |
---|---|
24,75 | 198 |
24,76 | 198,08 |
24,77 | 198,16 |
24,78 | 198,24 |
24.79 | 198.32 |
24.80 | 198,4 |
24,81 | 198,48 |
24,82 | 198,56 |
24,83 | 198,64 |
24,84 | 198,72 |
24,85 | 198,8 |
24,86 | 198,88 |
24,87 | 198,96 |
24,88 | 199.04 |
24,89 | 199,12 |
24,90 | 199,2 |
24,91 | 199,28 |
24,92 | 199,36 |
24,93 | 199,44 |
24,94 | 199,52 |
24,95 | 199,6 |
24,96 | 199,68 |
24,97 | 199,76 |
24.98 | 199,84 |
24,99 | 199,92 |
Отношение разрешения изображения к размеру изображения | Винсент Табора | High-Definition Pro
Изображение, снятое на камеру с цифровой CMOS-матрицей, сохраняется на носитель (карту SD / SDXC) в формате файла. Для достижения наилучших результатов обычно снимайте в формате RAW, несжатом формате файлов без потерь, который сохраняет все снятые детали. Это также лучший формат для внесения изменений в изображение перед окончательной постобработкой, но не все снятые изображения имеют одинаковый размер файла.Размер файла не совпадает с разрешением, хотя разрешение действительно помогает определить качество и общий размер файла.
Размер файла измеряется в байтах. , как правило, с сегодняшних камер снимки сохраняются в файлах, размер которых измеряется в МБ (мегабайтах). Это связано с множеством различий в деталях, хранящихся в изображении, которое определяется освещением, экспозицией и выдержкой. Некоторые изображения будут более детализированными, чем другие, в зависимости от настроек вашей камеры. Даже если все изображения, снятые в формате RAW, имеют одинаковое разрешение, они все равно не будут иметь одинаковый размер файла для всех захваченных изображений, но будут близки.Есть еще одна вещь, которая определяет размер файла, и она называется глубиной бит .
Расчет размера изображения
Изображения состоят из сетки пикселей, известной как «элементы изображения». Пиксель содержит 8 бит (1 байт), если он находится в BW (черно-белом). Для цветных изображений используется определенная цветовая схема, называемая RGB (красный, зеленый, синий), представленная как 1 байт каждый или 24 бита (3 байта) на пиксель. Это также называется глубиной бит изображения . Чтобы определить битовую глубину, вам нужно количество битов, используемых для определения каждого пикселя.
> битовая глубина,> количество оттенков (оттенков серого или цветных), которые могут быть представлены.
Цифровые изображения могут быть черно-белыми (битональными), оттенками серого или цветными. Каждый цвет имеет переменный уровень, определяемый экспоненциальными значениями из 256 цветов для 8-битных изображений и 16 777 216 цветов для 24-битных изображений. Таким образом, битовая глубина в 24 бита представляет 16,7 миллиона тональных представлений цвета. Разрешение изображения — это просто размер ширины (W) и высоты (H) изображения, измеренный в пикселях.
Чтобы получить размер изображения, необходимо разрешение.
(Ш x В x BitDepth) / 8 бит / байт = (W x H x BitDepth) x 1 байт / 8 бит
В качестве примера предположим, что изображение имеет следующие размеры:
W = 4928 пикселей
H = 3264 пикселя
BitDepth = 24 бит / пиксель
= (4928 x 3264) x 24 бит / пиксель / 8 бит / байт
= 16084992 пикселя x 24 бит / пиксель / 8 бит / байт
= 386 039 808 бит / 8 бит / byte
= 386 039 808 бит x 1 байт / 8 бит
= 48 254 976 байт
= 48 МБ
По оценке, на SD-карте 4 ГБ можно хранить около 89 изображений по 48 МБ каждое.На 32 ГБ можно сохранить до 712 изображений. Это снова будет варьироваться в зависимости от того, что фотограф снимает (свадьба, спорт, мода, события) и детали, которые запечатлены в цвете или черно-белом.
Примечание. Размер изображения является приблизительным и основан на размерах. Они могут варьироваться от изображения к изображению в зависимости от деталей, которые они содержат, по цвету, глубине и яркости. Например, даже если битовая глубина составляет 24 бита, не все эти биты будут отображать однородный тон или цвет, а скорее будут отображать градиенты гаммы цветового спектра RGB.
При планировании съемки с помощью DSLR или другой цифровой камеры убедитесь, что на вашей SD-карте достаточно места. Для коммерческих и свадебных фотографов, которым необходимо снимать в режиме нон-стоп, идеально подходят быстрая запись и запоминающее устройство большой емкости. (Источник фото Panasonic)Причины снимать в высоком разрешении
Одна из причин снимать в высоком разрешении заключается в том, что изображение может быть увеличено до большого формата печати. Это идеально подходит для публикации и рекламы, где максимальное разрешение определяет окончательное качество выходного изображения.Например, если вы хотите напечатать изображение размером с рекламный щит, наилучшим результатом будет несжатое изображение с высоким разрешением, поскольку масштаб увеличения находится на более приемлемом уровне. Изображения с высоким разрешением при увеличении или увеличении исходного размера по-прежнему выглядят резкими и детализированными. В то время как изображение с более низким разрешением при увеличении становится размытым, пиксельным (заметные пиксели) и не сохраняет резкость в деталях.
10.9 Представление типа данных даты и времени
10.9 Представление типа данных даты и времени
В следующей таблице показаны требования к хранению даты и даты. типы данных времени.
Тип | Хранилище до MySQL 5.6.4 | Хранилище с MySQL 5.6.4 |
ГОД | 1 байт с прямым порядком байтов | Без изменений |
ДАТА | 3 байта с прямым порядком байтов | Без изменений |
ВРЕМЯ | 3 байта с прямым порядком байтов | 3 байта + память для дробных секунд, прямой порядок байтов |
TIMESTAMP | 4 байта с прямым порядком байтов | 4 байта + память для дробных секунд, прямой порядок байтов |
ДАТА ВРЕМЯ | 8 байт с прямым порядком байтов | 5 байт + память для дробных секунд, прямой порядок байтов |
До MySQL 5.6.4 типы данных даты и времени имеют следующие кодировки:
ГОД: однобайтовое целое число.
ДАТА: трехбайтовое целое число, упакованное как ГГГГ × 16 × 32 + MM × 32 + DD
ВРЕМЯ: трехбайтовое целое число, упакованное как DD × 24 × 3600 + HH × 3600 + ММ × 60 + СС
TIMESTAMP: четырехбайтовое целое число, представляющее секунды по всемирному координированному времени с момента эпоха (‘1970-01-01 00:00:00’ UTC)
DATETIME: восемь байтов: четырехбайтовое целое число для даты, упакованной как ГГГГ × 10000 + MM × 100 + DD и четырехбайтовое целое число для времени упакованы как HH × 10000 + MM × 100 + SS
Начиная с MySQL 5.6.4 типы TIME, TIMESTAMP и DATETIME могут иметь доли секунды. Хранение для этих типов с прямым порядком байтов (в целях совместимости с memcmp ()) с нефракционной частью за которой следует дробная часть. (Хранение и кодирование для Типы YEAR и DATE остаются без изменений.)
1-битный знак (1 = неотрицательный, 0 = отрицательный)
1 бит не используется (зарезервирован для будущих расширений)
10 бит час (0-838)
6 бит минут (0-59)
6 бит в секунду (0-59)
---------------------
24 бита = 3 байта
1-битный знак (1 = неотрицательный, 0 = отрицательный)
17 бит год * 13 + месяц (год 0-9999, месяц 0-12)
5-битный день (0-31)
5 бит час (0-23)
6 бит минут (0-59)
6 бит в секунду (0-59)
---------------------------
40 бит = 5 байтов
Знаковый бит всегда равен 1.Значение 0 (отрицательное) зарезервировано.
FSP | Хранилище |
0 | 0 байт |
1,2 | 1 байт |
3,4 | 2 байта |
4,5 | 3 байта |
Сколько битов требуется для кодирования изображения шириной 25 пикселей и высотой 50 пикселей, если вы
Тип фактора Начало подсчета лягушек Моделирование 1 (Низкое) Моделирование 2 (Высокое) Хищники (аллигаторы) Загрязнение Еда (комары) НЕТ ССЫЛКИ !!!!!!!
Запишите свои данные из каждого испытания в приведенную ниже таблицу данных: Тип фактора Начало подсчета лягушек Моделирование 1 (Низкое) Моделирование 2 (Высокое) Хищники (аллига … торс) Загрязнение Еда (комары)
Помощь как можно скорее 75 баллов Задача (и): По вашим собственным словам, какова была цель этой лабораторной работы? Гипотеза: в этот раздел, пожалуйста, включите условие if / then … nts, которые вы разработали во время лабораторной работы.Эти утверждения отражают ваши прогнозируемые результаты эксперимента. Если количество хищников увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет. Если загрязнение увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет. Если количество доступной пищи увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет. Процедура: процедуры перечислены в вашей виртуальной лаборатории.Здесь не нужно их повторять. Обязательно укажите тестовую переменную (независимую переменную), переменную результата (зависимую переменную) и контрольную группу для этого эксперимента. Напоминание: тестовая переменная — это элемент, который изменяется в этом исследовании. Переменная результата — это элемент, который вы измеряете в этом исследовании. Контрольная группа — это группа в эксперименте, в которой тестируемые факторы не применяются. Это позволяет ученым установить базовый уровень для сравнения экспериментальных групп, к которым действительно применяются факторы.Переменная теста (независимая переменная): Переменная результата (зависимая переменная): Контрольная группа: Данные: Запишите свои данные из каждого испытания в таблицу данных ниже: Тип фактора Начало Подсчет лягушек Моделирование 1 (Низкое) Моделирование 2 (Высокое) Хищники (аллигаторы ) Загрязнение пищевых продуктов (комары) Графики Используйте графики, которые вы распечатали из диаграммы данных в виртуальной лаборатории, и проанализируйте данные. Записывайте любые тенденции, которые вы обнаружите. Хищники (аллигаторы): Загрязнение: Пища (комары): Заключение: Ваше заключение будет включать краткое изложение и интерпретацию результатов лабораторных исследований.Пожалуйста, пишите полными предложениями. Какие ограничивающие факторы в этом лабораторном моделировании являются биотическими? Какие ограничивающие факторы в этом лабораторном моделировании являются абиотическими? Какой ограничивающий фактор
Задача (и): По вашим собственным словам, какова была цель этой лабораторной работы? Гипотеза: в этот раздел, пожалуйста, включите утверждения if / then, которые вы разработали … звоните в вашу лабораторию. Эти утверждения отражают ваши прогнозируемые результаты эксперимента. Если количество хищников увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет.Если загрязнение увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет. Если количество доступной пищи увеличится, то популяция лягушек-сверчков будет (увеличиваться / уменьшаться / оставаться неизменной) в течение пяти лет. Процедура: процедуры перечислены в вашей виртуальной лаборатории. Здесь не нужно их повторять. Обязательно укажите тестовую переменную (независимую переменную), переменную результата (зависимую переменную) и контрольную группу для этого эксперимента.Напоминание: тестовая переменная — это элемент, который изменяется в этом исследовании. Переменная результата — это элемент, который вы измеряете в этом исследовании. Контрольная группа — это группа в эксперименте, в которой тестируемые факторы не применяются. Это позволяет ученым установить базовый уровень для сравнения экспериментальных групп, к которым действительно применяются факторы. Переменная теста (независимая переменная): Переменная результата (зависимая переменная): Контрольная группа: Данные: Запишите свои данные из каждого испытания в таблицу данных ниже: Тип фактора Начало Подсчет лягушек Моделирование 1 (Низкое) Моделирование 2 (Высокое) Хищники (аллигаторы ) Загрязнение пищевых продуктов (комары) Графики Используйте графики, которые вы распечатали из диаграммы данных в виртуальной лаборатории, и проанализируйте данные.Записывайте любые тенденции, которые вы обнаружите. Хищники (аллигаторы): Загрязнение: Пища (комары): Заключение: Ваше заключение будет включать краткое изложение и интерпретацию результатов лабораторных исследований. Пожалуйста, пишите полными предложениями. Какие ограничивающие факторы в этом лабораторном моделировании являются биотическими? Какие ограничивающие факторы в этом лабораторном моделировании являются абиотическими? Какой ограничивающий фактор
нужен кто-то, чтобы сочинить песню, нужно иметь вокал и петь https://www.soundtrap.com/invite/T6LP4L3
На примере объясните термин «эргономика» и объясните, почему он важен.(Вопрос из 6 баллов)
Классическая головоломка называется Ханойская башня. Чтобы решить загадку, вы должны переместить все кольца с колышка слева на колышек справа. S … звучит легко? Хитрость в том, что все части имеют разные размеры, и нельзя класть большую часть поверх меньшей. Как и в случае с задачей коммивояжера, с которой вы познакомились в этом разделе, Ханойская башня — это проблема, которую компьютер хорошо решает. Алгоритм действительно помогает! Но Ханойскую башню по-прежнему интересно потренировать самостоятельно.В этой лабораторной работе вы будете использовать виртуальную Ханойскую башню, чтобы решить загадку. Шаг 1 Решите головоломку не менее трех раз. Начните всего с трех дисков. Вы также должны решить головоломку с четырьмя дисками, а затем бросить вызов самому себе с любым количеством дисков, превышающим 4. (Измените количество дисков, щелкая стрелки в верхнем левом углу игры.) Сделайте снимок экрана с каждым из ваших решений, показывая завершенную головоломку и количество ходов, которые вам потребовались, чтобы достичь этой точки. Это нормально, если ваше количество ходов превышает указанное минимальное количество ходов.Шаг 2 После того, как вы решите Ханойскую башню хотя бы трижды, напишите алгоритм с четкими пронумерованными шагами, который будет направлять другого игрока через шаги решения головоломки. Вот подсказка, с которой вы начнете: Первый шаг должен быть следующим: переместите самое маленькое кольцо на средний колышек. Шаг 3 После того, как вы напишете алгоритм, напишите несколько предложений, отражающих ваш опыт: Что было сложным в написании алгоритма? Вы обнаружили, что наличие написанного алгоритма облегчило решение головоломки? Почему или почему нет? Шаг 4 Проведите онлайн-исследование и откройте для себя еще один известный алгоритм или головоломку кодирования, чтобы поделиться им.Напишите краткое изложение головоломки, а также то, что вам в ней интересно. Включите ссылку на источник, в котором вы нашли загадку. Отправьте свои скриншоты, алгоритм, размышления и исследования в одном документе.
i) Укажите два типа носителей информации. ii) Назовите три важных особенности носителя информации. iii) Укажите два способа защиты носителей информации. Пожалуйста, нет … чернила и ложные ответы.
Как я могу использовать социальные сети, чтобы повысить осведомленность о проблемах и темах, которые важны для меня? Назовите как можно больше 🙂
бит, байтов и пива — профессиональные аудиофайлы
Содержание статьи
Если вы читаете это, вы, несомненно, компьютерный музыкант или звукорежиссер, а также, вероятно, имеете общее представление о битах и байтах двоичного мира.Но для многих просто знать, что 24 бита лучше, чем 16 бит, но не иметь возможности связно объяснить почему, может расстраивать.
Почему диапазон MIDI от 0 до 127? Что такое 14-битный контроллер? Если вы программист или уже свободно владеете двоичными выражениями, остановитесь здесь и возьмите себе пива. Но если нет, и вам интересно узнать, что происходит под капотом вашего процессора, читайте дальше.
Основы
1 бит хранит либо 0, либо 1. Два варианта и, следовательно, термин двоичный.
1 байт — это группа из 8 бит.
Чем больше битов вы используете для определения количества, тем точнее вы можете быть, просто потому, что есть больше вариантов. В качестве аналогии подумайте об управлении высотой тона. Если вы можете отрегулировать высоту звука только на полшага, это даст вам двенадцать возможных значений в каждой октаве. Но точная регулировка высоты тона часто дает 100 центов или выбор за шаг, что дает 1200 возможных вариантов.
Еще одна аналогия — цифровой цвет. Ниже приведен пример 8-битной цветовой палитры.Есть 256 возможных вариантов. Ниже представлен 24-битный цветовой спектр, который позволяет выбирать из миллионов вариантов.
Все еще не уверены? Давайте рассмотрим аналогию с пивом. Предположим, вы зашли в бар, и у них есть всего 4 разливных пива. Это двухбитный выбор пива. Теперь предположим, что у них есть 256 бутылок пива. Это 8-битный выбор пива. Вывод: 8 бит лучше 2 бит. Все еще не понимаете? Я тоже, но читайте дальше.
Двоичная и база 10
Чтобы понять двоичную систему, было бы полезно понять, как числа с основанием 10 соответствуют двоичным числам.
В системе с основанием 10 каждое место в десятичном числе представлено 10 возможными значениями (0–9). Например, выражение 12,457 эквивалентно сумме значений ниже:
1 x 10 000 = 10 000
2 x 1000 = 2000
4 x 100 = 400
5 x 10 = 50
7 x 1 = 7
7 + 50 + 400 + 2000 + 10,000 = 12 457.
В двоичной системе каждое место может иметь только 2 возможных значения (0 или 1). Каждое последующее место — это степень 2. Таким образом, для 8-битного числа у вас будет группа из 8 цифр, все либо 0, либо 1.
Обратите внимание на таблицу ниже:
1 = 20
2 = 21
4 = 22
8 = 23
16 = 24
32 = 25
64 = 26
128 = 27
В качестве примера я присвоил случайные значения каждому месту выше. Таким образом, двоичное значение 10010011 в базе 10 будет равно 147:
. 1 x 1 = 1
1 x 2 = 2
4 x 0 = 0
8 x 0 = 0
16 x 1 = 16
32 x 0 = 0
64 x 0 = 0
128 x 1 = 128
1 + 2 + 16 + 128 = 147
В случае 8-битного двоичного числа максимальное значение будет 255 (с каждым разрядным значением 1):
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255
Но на самом деле было бы 256 возможных значений, потому что 0 считается значением (0 — 255).24 (2, увеличенные на 24) значений, или 16 777 216. Итак, вы можете видеть, что 24-битный звук может быть более конкретным с точки зрения цифрового значения. Большая конкретность означает большую точность и меньше шума или ошибок в описании аналогового источника. Что касается динамического диапазона, это соответствует 140 дБ для 24-битной записи по сравнению с 96 дБ для 16-битной записи.
MIDI
А как насчет MIDI? Что с этим диапазоном 0–127? Вернувшись к 8-битной диаграмме выше, вы должны начать понимать, откуда это взялось.
Типичные значения MIDI получены из 7-битных двоичных чисел:
Таким образом, 7-битное двоичное значение выше, 1010011 в базе 10 будет равно 83:
1 x 1 = 1
2 x 1 = 2
4 x 0 = 0
8 x 0 = 0
16 x 1 = 16
32 x 0 = 0
64 x 1 = 64
ОБЪЯВЛЕНИЕ
1 + 2 + 16 + 64 = 83
Если бы все разряды имели значение 1, у нас было бы 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127.
Если бы все разряды имели значение 0, у нас было бы 0.14 (2 в степени 14) или 16 384 возможных значения вместо 128 (часто полезно для управления изменением высоты звука).
1 бит — запись с высокой частотой дискретизации
Что касается цифровой записи, были и другие подходы. Sony / Philips разработали 1-битную систему записи, известную как DSD (Direct Stream Digital), которая использует экстремальную частоту дискретизации (2,8224 МГц). Korg MR-1000 использует частоту дискретизации 5,6448 МГц. В этих случаях точность достигается за счет огромного количества последовательных измерений или выборок по сравнению с меньшим количеством, но более конкретными измерениями.
32- и 64-разрядная архитектура
Процессорыможно охарактеризовать как использующие 32-битную или 64-битную архитектуру. Переход на 64-битную версию начался примерно в 2006 году, но потребовалось несколько лет, чтобы программное обеспечение и операционные системы наверстали упущенное. Чтобы в полной мере использовать 64-разрядную версию, каждый компонент в цепочке должен работать в этом мире (например, приложение, операционная система и ЦП).
Преимущества 64-битной архитектуры:
- Повышенная точность
- Увеличенный динамический диапазон
- Увеличенный запас по высоте
Хорошая статья о различиях между 32 и 64 битами здесь.18 (10 увеличено на показатель 18)
Обратите внимание, что для представления числа с фиксированной точкой слева требуется 19 цифр, а для представления того же значения с использованием числа с плавающей запятой справа — всего 8 цифр. Ту же идею можно использовать для выражения очень маленьких чисел с помощью отрицательной экспоненты.
Не углубляясь в математику, достаточно сказать, что число с фиксированной запятой может быть более точным, но число с плавающей запятой может выражать очень большие или очень маленькие числа с использованием меньшего количества бит.Что касается звука, это приводит к увеличению запаса по месту и динамическому диапазону для обработки с плавающей запятой, но потенциально к меньшей точности и большему количеству ошибок округления. Это означает, что файл, записанный с 32-битным числом с плавающей запятой, на самом деле может содержать больше ошибок, чем файл, записанный с фиксированным 24-битным значением. Действительно, даже с DAW, которые допускают настройку сеанса с 32-битной точкой с плавающей запятой, файлы на самом деле записываются с 24-битным форматом, а затем конвертируются внутренне перед сохранением в файл.
После того, как звук записан в 24-битном формате, любая обработка, включая эквалайзер или любые добавленные эффекты, и даже простое микширование треков без манипуляций выполняется с наивысшим битовым разрешением, доступным для ЦП, операционной системы, приложения и плагина.
Хорошее обсуждение этой темы можно найти здесь (стр. 65-78):
Итак, в следующий раз, когда кто-то задаст вам вопросы, например, почему 24-битная запись лучше 16-битной или почему диапазон MIDI составляет 0–127, надеюсь, вы получите последовательный ответ. Если нет, пробормотайте что-нибудь себе под нос и предложите им пива.
ПРИМЕЧАНИЕ: В этой статье, если это не было очевидно, пиво используется как метафора вашего собственного вкуса личного вознаграждения. При этом, если вы пьете, пейте ответственно.А если нет, то это больше денег на снаряжение!
Филип Мантионе
Филип Мантион — композитор, синтезатор, гитарист, педагог и звукорежиссер, работающий на экспериментальной музыкальной сцене Лос-Анджелеса. Его музыка была представлена на фестивалях, в музеях и галереях по всему миру. Его нынешний проект — TriAngular Bent, электроакустическое трио с участием Дона Престона (одного из основателей группы «Матери изобретений» Фрэнка Заппы) и виртуоза контуров Джеффа Бойнтона.Подробности на philipmantione.com 1. Базовая терминология Ключ Концепты цифровой изображения дополнительный чтение | БИТ ГЛУБИНА определяется количеством битов, используемых для определения каждого пикселя.Чем больше чем больше битовая глубина, тем большее количество тонов (оттенков серого или цветных) могут быть представлены. Цифровые изображения могут быть черно-белыми. (битональный), оттенки серого или цветной. А битональное изображение представлено пикселями по 1 биту каждый, который может представлять два тона (обычно черный и белый), используя значения 0 для черного и 1 для белый или наоборот. А Изображение в градациях серого состоит из пикселей, представленных несколькими битами информации, обычно от 2 до 8 бит или более.
А Цветное изображение обычно представлено битовой глубиной от От 8 до 24 или выше. В 24-битном изображении биты часто делятся на три группы: 8 для красного, 8 для зеленого и 8 для синего. Комбинации из этих битов используются для представления других цветов. 24-битное изображение предлагает 16,7 миллиона (2 24 ) значения цвета. Все чаще сканеры захватывают 10 или более бит на цветовой канал и часто выводят 8 бит для компенсации «шума» в сканере и представления изображение, которое более точно имитирует человеческое восприятие. Бит
Глубина: Слева направо — 1-битный битональный, 8-битный оттенки серого,
и 24-битные цветные изображения. двоичный расчеты для количества тонов, представленных общей битовой глубиной:
|