16 бит это: 16 бит | это… Что такое 16 бит?
16-битная архитектура — frwiki.wiki
В информатике , 16-битная архитектура представляет собой тип компьютерной структуры с использованием слов ( процессор , память, шины , и т.д. ) с размером 16 бит (т.е. два байта ).
В 16-битном слове может храниться 2 16 различных значений или 65 536 значений. Таким образом, 16-разрядный процессор может напрямую адресовать 64 КБ памяти .
Резюме
- 1 рассказ
- 2 модели 16-битной памяти
- 3 Motorola 16/32 68000 и Intel 386SX
- 4 16-битный формат файла
- 5 Примечания и ссылки
- 6 Статьи по теме
История
В середине 1960-х первые 16- битные компьютеры на рынке включали HP-2116 от HP , PDP-11 от DEC и Nova от Data General . Они спроектированы и изготовлены на основе «дискретных» компонентов и поэтому относительно сложны и громоздки.
К середине 1970-х годов начали распространяться 8 / 16- битные микропроцессоры ( 16- битная адресная шина, 8-битная шина данных), такие как Zilog Z80 или Motorola 6809 .
В начале 1980-х производители разработали 16-битные микропроцессоры , такие как Intel 8086 , Intel 80286 и MOS Technology 65C816 . В Intel 8088 в регистры и арифметические команды работает на 16-битных чисел, но его память и внешние шины данных только 8 бит шириной.
Целое число из 16 бит позволяет Tips 2 16 (или 65 536 чисел) различных значений. В представлении без знака эти значения представляют собой целые числа от 0 до 65 535. В представлении с дополнением до двух эти значения составляют от -32 768 до 32 767. Таким образом, процессор, обрабатывающий 16-разрядные адреса памяти, может напрямую обращаться к 64 КБ памяти. .
16-битные модели памяти
16-разрядные процессоры были почти полностью вытеснены в отрасли персональными компьютерами, но они по-прежнему используются в самых разных встроенных приложениях.
Например, 16-битный процессор XAP используется во многих ASIC .Так же, как существует несколько моделей данных для 64-битных архитектур , любой 16-битный процессор может получить доступ к 65536) конкретным ячейкам памяти.
Выбор конкретной модели памяти будет зависеть от количества инструкций по сборке или объема памяти, необходимого для указателей.
Компилятор 16-битные эпохи в целом к ширине в зависимости от типа, имеет следующие характеристики:
Модель данных | short | int | long | Указатели |
---|---|---|---|---|
IP16L32 ( рядом | 16 | 16 | 32 | 16 |
I16LP32 ( далеко ) | 16 | 16 | 32 | 32 |
Крошечный : код и данные будут в одном сегменте (особенно регистры CS, DS, ES, SS будут указывать на один и тот же сегмент). Рядом указатели всегда используются. Код, данные и стек вместе не могут превышать 64 КБ .
Маленький : код и данные будут в разных сегментах, и всегда используются ближние указатели . Будет доступно 64 КиБ пространства для кода и 64 КБ для данных и стека.
Средний : код будет использовать дальние указатели , что позволит получить доступ к 1 МиБ . Указатели данных останутся того типа, который находится рядом .
Компактный : данные будут использовать дальние указатели, а код будет использовать ближние указатели .
Большой / огромный : указатели на код и данные будут далеко .
Модель памяти | Данные | Закодировано |
---|---|---|
Крошечный * | возле | |
Небольшой | рядом ** | возле |
Середина | возле | далеко |
Компактный | далеко | возле |
Большой | далеко | далеко |
Огромный | огромный | огромный |
Motorola 16/32 68000 и Intel 386SX
Motorola 68000 иногда упоминается как 16-бит , потому что его шина данных 16-битная, но он также может рассматриваться как 32-битная архитектура процессора в качестве своих общих регистров имеют емкость 32 бита и что большинство арифметических команд поддерживают 32 битовые целые числа, до 16 Мбайт из адресуемой памяти .
Процессор 68000 Sega Mega Drive был очень заметен в рекламных роликах, консоль даже имела надпись «16-bit» на верхней части корпуса, что привело к тому, что этот период в истории игровых консолей был назван «16-битная эра».
Многие семейные машины того времени использовали микропроцессор 68000: Macintosh , Amiga 500 , Atari ST , Sharp X68000, но также Neo-Geo, который тогда был представлен только как 32-битная консоль. 68000 использовался в консоли Jaguar от Atari, представленной в то время как первая 64-разрядная версия на рынке (когда на самом деле только часть ее архитектуры была 64-разрядной).
Тот же анализ применим к Intel 80386SX , микропроцессору низкого уровня, который также является 32-битным процессором, связанным с 16-битной шиной.
16-битный формат файла
16-битный формат файла — это двоичный формат файла , в котором каждый фрагмент данных имеет значение 16 бит (или 2 байта), например кодировку UTF-16 или формат метафайла Windows .
Примечания и ссылки
- ↑ Имя: 2116B , на hpmuseum.net , по состоянию на 24 декабря 2012 г.
- ↑ « Семейство микропроцессоров Intel 8088 » на www.cpu-world.com (по состоянию на 6 октября 2020 г. )
- ↑ Внутрипрограммное руководство Borland Turbo C ++ 1.01
- ↑ «СТ» означает Шестнадцать / тридцать два , что указывает на архитектуру процессора в 16 / 32 бит.
Статьи по Теме
- Адресация памяти
- Булева алгебра
- Байт
- Цифровая электроника
- Байт
- Процессор
- Порядок величины данных
- 64-битный процессор
Процессорные технологии | |||||
---|---|---|---|---|---|
Архитектура |
| ||||
Комплект инструкций |
| ||||
Микроархитектура |
| ||||
Параллелизм |
| ||||
Схемы |
| ||||
Типы |
| ||||
Сроки |
| ||||
Управление энергопотреблением |
|
<img src=»//fr. wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»» title=»»>
Дневники чайника
Дневники чайникаСистемы счисления и устройство памяти.
Второй день
Поскольку компьютер в основе своей имеет только 0 и 1, на первых этапах освоения ассемблера (может быть, год) нам будут нужны только целые числа, мало того, очень долго можно работать всего лишь с положительными целыми числами, о которых здесь и пойдёт речь.
Только целые и только положительные.
Возможно, вы проходили эту тему в школе, и кто-то из вас даже что-то помнит, но начинать нужно именно отсюда.
Нас будут интересовать 3 системы счисления — dec, bin, hex.
Десятичная — Decimal (Dec или буква «d»)
Aрабская система — она называется десятичной, потому что в ней используются 10 символов.
0,1,2,3,4,5,6,7,8,9
Все значения представляются этими символами. Вы и сами знаете, как пользоваться десятичной системой, так как мы все выросли на ней и каждую минуту чего-нибудь считаем.
Запомни, юнга! В космосе нет верха, нет низа — это всё условности. И то, что у тебя десять пальцев на руках, это всего лишь исключение. У наших бинарных братьев всего два пальца, они смеются над тобой — урод десятипалый :). У них есть на это право, их больше и они старше. С Бинарниками надо дружить, иначе корабль собьют на подходе к первой же станции.
Двоичная система счисления — Binary (Bin или буква «b»)
Нетрудно догадаться, что двоичная система имеет всего два символа 0 и 1.
Компьютер — это очень простой прибор, в нём есть только выключатели — биты (вкл. =1, выкл. =0).
Понятие Bit, скорее всего, произошло от английских слов Binary — двоичная и Digit — цифра. Но поскольку битов о-о-очень много, биты строятся в байты.
11111111 - это байт 01010101 - и это байт 00000000 - и это тоже байт
Бит может иметь значение 0 или 1.
Байт — это 8 бит, и он может иметь значения от 0000 0000 — ноль, до 1111 1111 — 255 в десятичной системе (пробелы для читаемости). Получается, что у байта 256 значений (всегда считается вместе с нулевым).
биты dec-цифры | биты dec-цифры 00000001 = 1 | 00001011 = 11 00000010 = 2 ! | 00001100 = 12 00000011 = 3 | 00001101 = 13 00000100 = 4 ! | 00001110 = 14 00000101 = 5 | 00001111 = 15 00000110 = 6 | 00010000 = 16 ! 00000111 = 7 | 00010001 = 17 00001000 = 8 ! | 00010010 = 18 00001001 = 9 | 00010011 = 19 00001010 = 10 | 00010100 = 20 И так до 11111111 = 255.
Переводить из десятичных цифр в биты (то есть в двоичные цифры) и обратно можно на виндовом калькуляторе (в инженерном режиме). Потренируйтесь пока так. Учить наизусть всю таблицу не нужно, познакомились — уже хорошо. :)
Как вы думаете, почему я выделил 2,4,8,16?
Правильно, это «круглые» цифры. В десятичной системе они, конечно, не круглые, но в двоичной получается 10,100,1000,10000. Поэтому десятичная система для компьютерных вычислений не очень подходит. Вместо неё используется…
Шестнадцатиричная система счисления — Hexadecimal (Hex или буква «h»)
Имеет целых 16 символов. Чтоб не придумывать новые символы, в hex используются буквы латинского алфавита.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F - это цифры
Я приравняю все hex-символы к десятичным значениям.
h d h d h d h d 0=0 4=4 8=8 C=12 1=1 5=5 9=9 D=13 2=2 6=6 A=10 E=14 3=3 7=7 B=11 F=15
В этой системе счисления ноль справа прибавляется при умножении на 16 (десятичных).
Лишние нули слева от числа значения не имеют, так же, как и в математике.
Однако если число начинается с буквы (A-F), ноль слева нужен при наборе программ. Иначе как компилятор будет определять, что началось число? А чтобы не путать числа в разных системах и писать при этом коротко, пишут:
d — десятичные значения
01,02,03,04,05,06,07,08,09,10d,11d,12d,13d,14d,15d,16d,17d,18d,19d,20d...
h — шестнадцатиричные значения
01,02,03,04,05,06,07,08,09,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh,10h,11h,12h,13h,14h...
b — двоичные значения
0,1,10b,11b,100b...
Вот примеры:
01 * 16d = 10h (получается 16d) 10h * 16d = 100h (получается 256d) 100h * 16d = 1000h (получается 4096d) 1 * 10h = 10h 10h + 10h = 20h 10h * 10h = 100h 100h + 100h = 200h 10b * 10b = 100b
Удобно, правда? А вот так?
10d + 10h = 1Ah или 26d
Неудобно. Поэтому всегда ВСЕ ВЫЧИСЛЕНИЯ ДЕЛАЙТЕ В ОДНОЙ СИСТЕМЕ!
Сам я никогда не перевожу из hex в dec и в bin в уме или на листочке, для этого есть калькулятор. И мне знакома эта растерянность перед новыми цифрами. Но я и не рассчитываю, что стало понятно хоть что-то. Просто вы должны знать, что системы счисления hex & bin существуют. Через месяц практики вы привыкнете к шестнадцатиричной системе как к родной. А вот двоичная будет использоваться только в пределах четырёх байт. На экране монитора мне лишь изредка приходится видеть биты как «01011010», хотя часто их очень не хватает.
Теперь ещё раз про байт.
bin-числа hex-числа 00001000 = 08 00010000 = 10h 00100000 = 20h 01000000 = 40h 10000000 = 80h ... 11111111b = FFh
В байт умещаются ровно два разряда hex-системы счисления! Именно так мы и будем видеть байты. Вспомните наш нулевой эксперимент:
байты в hex символы в кодировке DOS (Р - русская буква) 90 41 90 41 90 90 41 41 42 43 44 | РAРAРРAABCD
Теперь вы понимаете, что я имел в виду, сказав: «90 здесь 144». Правильнее было бы сказать 90h = 144d.
Байт это 8 бит, и что самое главное, байт — минимально адресуемая ячейка памяти.
Если нужно прочитать информацию, например, из бита 900, то нам нужно обратиться к 112-му байту и посмотреть в нём бит номер 4.
| Адрес в байтах | Информация в БИТАХ | | 76543210 - номера бит (разряд) ------|-------------------|----------------------------------------------- 111d | 0000006F | 00000000 112d | 00000070 | 000?0000 113d | 00000071 | 00000000 114d | 00000072 | 00000000
Конечно же, в компьютере физически биты не разделяются пробелами. Вся оперативная память, например, — сплошной поток выключателей :).
Но при отображении биты обычно разделяют на:
байты — 8 бит, две hex-цифры, или
тетрады — 4 бита, одна hex-цифра.
Обратите внимание на запись. Мы нумеруем биты справа налево и обязательно от нуля — это стандарт для учебников и документации. Кроме того, нумерация от нуля имеет математический смысл (разряды нужно осознать!).
Хотя так информацию мы видеть практически не будем. Вместо битов везде будут hex-байты, вот так:
Адрес в байтах | Информация в БАЙТАХ -------------------|--------------------------------------- 0000006F | 00 00000070 | 00 00000071 | 00 00000072 | 00
или вот так:
Адрес в байтах | Информация в БАЙТАХ -------------------|--------------------------------------- 0000006F | 00 00 00 00
Здесь вынужден заметить: адреса в файле и адреса в оперативной памяти — это совершенно разные вещи.
Далее по тексту я буду грубо писать: «адрес в памяти», под этими словами мы будем подразумевать часть логического адреса, которую принято называть смещением (offset). В рамках наших уроков смещение — вполне достаточный адрес в памяти. Однако смещение — это не полный логический адрес и называть смещение адресом без оговорок — довольно грубо! В следующем витке мы обязательно разберём адресацию памяти в разных режимах процессора, и там я расскажу, что такое сегмент и смещение.
А сейчас запомните. Когда я пишу: адрес в файле, я подразумеваю номер байта в файле от нуля. И это норма. А вот когда я пишу: адрес в памяти, это значит, что речь идёт о части логического адреса, называемой смещением (тоже от нуля).
Да простят меня профи за такую вольность.
Юнга, после обеда я научу тебя писать дельные программы для вспомогательного бортового оборудования. Ты, конечно, пуст, как первая ступень, и ни черта не понял за сегодня, но у меня нет времени рассусоливать, нас давно ждут.
Первая полезная программа
Что там у нас дальше по учебнику? Этого вам пока не надо… Этого я и сам ещё не знаю. .. Тут слишком много умностей… Нет, пожалуй, продолжу, как предложил Олег Калашников. Пожалуй, лучший подход для любителей практики.
Эксперимент 01 (prax01.com)
Я по-прежнему подразумеваю, что вы используете WinXP и пример должен работать.
Создайте файл с расширением «com» (напомню в FAR’e — Shift+F4). Назвав файл, напечатайте в нём любую букву или цифру, ну, допустим, «1». Сохраните файл (в FAR’e — Esc).
Нет, это ещё не программа, этот файл выполнять не нужно. Откройте в Hiew’e.
Сейчас вы видите 1, если нажать «F4» (Mode), то, как и в тот раз, вы увидите байт в hex-виде. F4 еще раз покажет дизассемблерный код. Если в файле единица, то выглядеть код будет так:
Адреса Байты Имена Операнды 00000000: 31 xor [bx][si],ax
В отличие от команды nop, которую вы уже видели, большинство команд используют предметы для действия.
Предмет, с (или над) которым производится действие, называется операнд.
Операнды в ассемблере для Интел-совместимых процессоров принято разделять запятыми.
То есть в некоторых системах или в других языках программирования пишут:
AX xor 44
или вполне может быть такая форма записи:
44,55 xоr AX
Но в x86 ассемблере принято писать так:
xor AX,44 где AX - операнд 1 (он же приёмник), а 44 - операнд 2 (он же источник).
Из всего этого главное сейчас усвоить, что операндов не больше трёх (чащё всего 2), они разделяются запятыми и идут после имени команды. Давайте писать настоящую программу на ассемблере.
В Hiew’e (когда вы видите дизассемблерный код нашего файла) нажмите F3 и затем Enter. Теперь можно набирать программу на ассемблере (символ «1» в файле должен стереться). Каждая инструкция вводится Enter’ом и превращается в строку, если нет явной ошибки. Пробелы нужны только для удобства, поэтому неважно, сколько их. Пишите как хотите, строчными или прописными буквами, но только по-англицки. :)
Вот код программы, его нужно набрать:
mov ah,9 mov dx,10Dh int 21h mov ah,10h int 16h int 20h
Когда всё напишете, нажмите один раз Esc, чтобы прекратить ассемблирование, и F9, чтобы сохранить файл.
Это был весь код программы, которая должна выводить строку на экран! Круто, правда? Только не хватает самой строки.
Для того, чтоб вписать строку, нужно открыть файл в текстовом редакторе (в FAR’e — F4).
Допишите после всех закорючек (только не сотрите ничего) любую текстовую строку и в конце поставьте знак $.
Это может выглядеть примерно так:
_?_? _?_?_?_?_Good Day!$
Закорючки будут другие, но вид такой. Сохраните программу. Откройте снова в Hiew’e.
Адреса Маш.команды Команды Асма комментарии Байты Имена Операнды 00000000: B409 mov ah,009 ; Поместить значение 9 в регистр AH (параметр1) 00000002: BA0D01 mov dx,0010D ; Поместить адрес текстовой строки в DX (параметр2) 00000005: CD21 int 021 ; Вызвать подпрограмму, в которой ; отработает функция вывода текста на экран (AH=09) 00000007: B410 mov ah,010 ; Поместить значение 10h в регистр AH (параметр1) 00000009: CD16 int 016 ; Вызвать подпрограмму ожидания нажатия клавиши 0000000B: CD20 int 020 ; Подпрограмма завершения 0000000D: 47 inc di 0000000E: 6F outsw 0000000F: 6F outsw 00000010: 64204461 and fs:[si][61],al 00000014: 7921 jns 000000037 ---X 00000016: 24 and al,000
Принято так, что после точки с запятой идёт комментарий, просто пояснение для людей. В этом примере я откомментировал все строки кода программы. Только вам от этого пока не легче.
Видите, начиная с адреса в файле 0000000Dh, появились команды, которые вы не писали, это всего лишь строка текста. Её процессор выполнять не будет только потому, что перед строкой текста стоит код завершения (int 20).
Запустите программу (можно из проводника)… Если компьютер с вами поздоровался — я вас тоже поздравляю! Значит, у вас есть шанс научить его делать и более сложные вещи.
Вы увидите окно DOS-приложения с текстом: Good Day! Нажатие на любую клавишу вызовет выход из программы. |
Если же этого не произошло — не расстраивайтесь. Перепроверьте всё несколько раз, может быть, вы опечатались. Прочитайте «Аннотацию» в последней главе или комментарии. Я пока ничего подобного не написал, но, возможно, когда-нибудь придётся. Ведь у нас нет гарантии, что новые твАрения MS или других «рук» не изменят ситуацию в худшую сторону. Хотя, будем надеяться, что программа заработает и на новых OS’ях и процессорах.
«$» не выводится. Хм, интересно :/ Это условный символ конца строки?
Да, но в windows мы будем использовать нулевой байт (00h) для этой же цели.
Вот, уже получилась полнофункциональная программа для DOS, которая будет работать и в Windows.
Прямо так и вижу следующие «почему»:
Почему mov?
Почему ah?
Почему 9?
И вообще, что это за подпрограммы-прерывания int 16, int 21, int 20.
Последний вопрос меня тоже очень огорчил, когда впервые столкнулся с этим примером. Я ожидал получить программу на чистом Ассемблере, а был вынужден использовать какие-то непонятные функции, которых не писал.
На самом деле вывод строки на экран без специальной DOS-функции ничуть не сложнее. Мы используем именно такой способ из-за того, что он наиболее схож с программированием под Win. Здесь было бы аккуратнее и быстрее выводить на экран без специальной подпрограммы DOS-функций.
Но ДОС в прошлом, а нас ждёт Win32.
Cамое главное не переживать, если вы вдруг не понимаете что здесь к чему, поверьте, через пару уроков вы полностью поймёте эту программу.
Мы завтра весь день будем искать ответ на вопрос «Почему ah», так как этот «почему» — самый важный во всём ассемблере. Серьёзно!
Bitfry
16 Бит и 24 бит звука разница • Вэб-шпаргалка для интернет предпринимателей!
Внимание: Ниже дан текст, упрощенный для понимания. В связи с этим, использовались не академически точные формулировки, а «бытовые». Например, «громкость» вместо «уровня», «частота» синуса вместо «период» синуса, «музыка» вместо «сигнал». Всё это сделано намеренно ! Приоритетная задача — донести смысл до читателя.
24 бита. Правды и неправды
Вокруг форматов аудио есть много споров, и в связи с этим, самый интересный вопрос: «Почему они возникают?». С одной стороны и ежу понятно, что 24 бита 96кГц это лучше, чем 16 бит и 44,1кГц. Но, тем не менее, споры не умолкают, а людям «поддерживающим» 44,1/16 как формат минимально достаточный, часто приходится бежать с поля боя(споров) за неимением аргументов против железной логики: 24 больше 16, а 44,1 меньше 96.
Я не буду доказывать, что 44,1/16 лучше 96/24. Я не буду писать, что 44,1/16 это само по себе круто. Я напишу, что именно эти цифры обозначают, и самое главное, как они проявляются не на бумаге, а в жизни. Что стоит за их рекламой.
Немного основ
Звуковой сигнал (или для простоты «музыка») в электронике представляет собой электрические колебания. Например, «синус» сигнал с уровнем 1dBV означает колебание напряжения от «плюс» 1,4142 вольта до «минус» 1,4142 вольта. То есть напряжение плавно изменяется от плюса к минусу по закону синуса. Чтобы этот сигнал «записать» в цифру, нужно сделать несколько замеров напряжения и «записать» их. И здесь два главных вопроса: 1) Когда сделать замеры; 2) Как записать.
Из теоремы Котельникова (Найквиста) следует, что замеры нужно делать как минимум вдвое чаще, чем частота самого синуса. То есть если у нас сигнал 50Гц (50 колебаний в секунду), то замеров нужно сделать 100 в секунду. Вот эти 100Гц и называются частотой дискретизации.
Теперь «Как записать».
Допустим у нас супер вольтметр, который измеряет вольты до десятой точки после запятой. Вот он нам выдаёт показание 1,0000000001 вольт, затем 0,0000000009 вольт. И так 100 раз в секунду он нам выдает значения. Если музыкальный диапазон равен ±1dBV, то есть громкость на максимуме в пиках даёт ± 1,4142135623 вольт, то чтобы записать наш сигнал с точностью до десятого знака, нам понадобится почти 28,3 млрд. значений. Это 35 бит! Динамический диапазон 204 децибела! Ну да ладно. Это абстракция. Глянем, что нам предлагают производители ЦАПов, и всё станет понятнее.
24 бита, как они есть
Большинство ЦАПов звуковых карт питаются от 5 вольт. На своём выходе, они могут обеспечить колебания напряжения равные 4,5 вольта*. То есть когда играет музыка, то самое максимальное значение которое сможет поймать вольтметр будет 4,5 вольта, а самое минимальное 0 вольт.
Вообще, ЦАП это такая вещь, которая на вход принимает «цифру», а на выходе выдаёт напряжение. Если в ЦАП постоянно посылать одну и ту же цифру, то на выходе у нас будет постоянное напряжение. Для наглядности возьмём 3-битный ЦАП. В него можно загружать 8 различных цифр (напомню, это 000, 111, 100, 101, 001, 010, 110 и 011). На выходе он нам также сможет выдавать 8 различных напряжений. То есть если загрузить цифру 000, то на выходе у нас будет 0 вольт. Если загрузить 111, то на выходе у нас будет 4,5 вольта. А все остальные «цифры» будут выдавать напряжения, лежащие между нулём и 4,5В.
Например:
000 – 0 вольт
001 – 0,6428 вольт
011 – 1,2856 вольт
010 – 1,9284 вольт
110 — 2,5712 вольт
101 – 3,214 вольт
100 – 3,8568 вольт
111 – 4,4996 вольт
Если ЦАП сделать 4-х битный, то таких напряжений на выходе будет уже не восемь, а 16. Ну, а если у нас 16 битный ЦАП, то таких напряжений будет 65,5 тысяч. Фактически это значит, что наш чудо-ЦАП может выдавать напряжения от 0 вольт до 4,5 вольт с шагом 68,66 микровольт (0,00006866 вольт)! А шаг 24-битного ЦАПа, при его 16,77 миллионах значениях, будет равен 0,26822 микровольт.
От теории к практике
Вот это всё на бумаге. В реальности мы должны учитывать такое неприятное явление как шум. Любая, повторяю — ЛЮБАЯ, электрическая схема шумит. Это значит, что на выходе ЦАПа будет не только напряжение, которое он генерировал, но ещё и напряжение шума.
Представим, что рядом с ЦАПом находится возбудитель помех, который наводит шум на выход ЦАПа. Громкость шума возьмём от 0 мкВ (микровольт) до 10 мкВ (кому интересно, это уровень шума (SNR) для нашего ЦАПа равный -113dB). То есть наш ЦАП выдаёт какое-то «музыкальное» значение согласно той «цифре», что в него поступила, и к этому значению прибавляется случайное напряжение шума. Например, ЦАПу надо выдать ноль вольт, самое первое значение. Он выдаёт ноль, а возбудитель наводит помеху, и вместо нуля у нас на выходе получится, например 5мкВ. А затем ЦАПу надо выдать 5мкВ, а плюс помеха, у нас получится 12мкВ или 15мкВ!
Таким образом, из-за шума у нас на выходе получаются значения, которые «залезают» на соседей. Опять же пример: для 24 битного ЦАПа самое первое значение – это ноль вольт. А если появится помеха, то на выходе вместо нуля будет 10мкВ, а это значение 37-е по счёту! Первое значение – ноль вольт, второе значение 0,26822 мкВ, третье значение 0,53644 мкВ. а 37 значение как раз 9,92414 мкВ. У нас из-за шума ЦАП перепрыгнул 36 значений! А когда ЦАПу надо будет сыграть это 37-е значение, то прибавится помеха и на выходе будет вместо 37 какое-нибудь 50-ое! Ну и так далее. Смысл понятен? Конечно, сам ЦАП нам честно выдаёт то, что от него и требуется (если ноль – то ноль, если 10мкВ — то 10мкВ), но из-за шума все «старания» перечёркиваются.
Давайте теперь разберемся, с каким шумом мы имеем дело.
Может ну его?
Конечно, я немного наврал, когда сказал, что сам ЦАП не шумит. Он тоже шумит! Потому что тепловой шум никто не отменял, это раз. И сам ЦАП питается далеко не от стабильного источника напряжения (который не шумит), и все референсные и опорные напряжения тоже идут с шумом. Откуда ему взять «чистое» напряжение? Это два. Величину шума самого ЦАПа можно увидеть в его спецификации. Залезаете на сайт производителя и ищете datasheet к ЦАПу. К примеру CS4396, который стоит на звуковых Lynx Two и Lynx L 22 имеет Dynamic Range = 120dB. Это значит, что от самого громкого до самого тихого звука у нас 120dB. Самый громкий звук – 4,5 вольта. Самый тихий звук – это отсутствие звука (ноль вольт), но из-за шума у нас будет не ноль, а 4,5 мкВ. То есть у нас шум идёт от 0 до 4,5мкВ. Но это на бумаге – а в реальности больше.
А мы ведь помним, что наш 24 битный ЦАП может выдавать напряжения с шагом 0,26822 мкВ. Получается, что только из-за собственного шума ЦАП может перепрыгивать через 15 значений!
Но и на этом не всё. После ЦАПа обязательно стоит «миниусилитель», и даже не один. И каждый шумит. Опять же возьмём «миниусилитель» из Lynx’ов. Он называется OP275. Смотрим в его спецификацию и видим шум 1,186 мкВ. А до того, как этот звук заиграет в мониторах, он ещё пройдёт через усилитель. Возьмём усилитель на микросхеме LM3886, т.к. считается, что это хай перфоманс микруха, и на её основе делают усилители для таких мониторов как Yamaha HS50M и HS80M, KRK Systems V4, V6 и V8, Roland DS-5 и многие Другие. Смотрим спецификацию, и видим шум — от 2мкВ до 10мкВ!
То есть все эти шумы сложатся, а затем в усилителе усилятся вместе с полезным сигналом.
Ну и давайте посмотрим как бы самый худший вариант:
На ЦАП поступает «цифра», которая требует от ЦАПа ноль вольт. Но из-за собственных шумов он выдаёт нам 4,5мкВ. Далее два «миниусилителя» — и шум у нас уже 6,872мкВ. Далее сигнал отправляется по симметричной линии в мониторы, и там обязательно будет сумматор для балансной линии. Потому что в усилитель звук поступает несимметричный. Вот здесь два пути – либо стоит специальная микросхемка, либо простой «миниусилитель», но поверьте, в обоих случаях этот дивайс будет хуже, чем в Lynx Two. Возьмём хороший ресивер балансной линии INA2134 – его шум 7мкВ. Итого 13,872мкВ. И плюс собственно усилитель мониторов. В сумме, повторюсь в наихудшем случае, у нас шум будет 23,872 мкВ. То есть для 24 битного ЦАПа это равносильно перескакиванию через 88 значений! А для 16 битного ЦАПа с его шагом 68,66 мкВ этого не хватит, чтобы дотянуться до соседнего значения. И у 16 битного ЦАПа есть ещё Dither, суть которого самому шуметь в случайном порядке в пределах 1 шага. То есть всем известный Dither сам, то прибавляет 68,66 мкВ, то вычитает из музыкального сигнала (хотя на деле он не «вычитает», а просто «не прибавляет»).
Кто все эти люди?
Ну и последнее — что всё это значит, и какой вывод напрашивается? Давайте для начала всё подытожим.
Хотим мы или не хотим, но в реальной жизни мы сталкиваемся с таким явлением как шум. В самом хорошем случае (а если быть честным, то 23,872 мкВ – это хороший случай, и ниже будет понятно почему) у нас всегда есть шум громкостью -106dB.
Для борьбы с шумом придумали Dither, суть которого прибавлять один шаг и отнимать (в случайном порядке). (прим. — На самом деле дитер не борется с шумом в смысле его подавления!)
А теперь смотрим, у нас есть шум 23,872 мкВ, который в случайном порядке то прибавляется к сигналу, то не прибавляется. То есть это как бы естественный Dither! И если создать ЦАП с шагом в 23,872 мкВ, то ЦАП будет «таким как надо». А это всего 18 бит!
Вывод 1: Из-за естественных шумов ограничивается динамический диапазон звука. 24 битные ЦАПы могут читать «цифру», но на выходе из-за шума у нас будет только 18 битный звук.
Вывод 2: Из-за того, что я не учёл: наводки (помехи), которые можно нахватать проводами, медными дорожками на плате, помехи пассивных компонентов (конденсаторов, резисторов), помехи в ключах и реле — картина получилась слегка приукрашенной. В реале немножко хуже.
Вывод 3: Из-за того, что я не включил в рассмотрение такие явления как гармонические искажения, интермодуляционные искажения, искажения при переходных процессах, то реальная картина будет ещё немножко хуже, чем в Выводе 2.
Вывод 4: Всё написаное относится только к случаю, когда звук выходит из звуковой карты. Сами «цифры» шуметь не могут**, во всяком случае, пока они находятся в программе. Таким образом, 24 бита для обработки сигнала – шаг вполне оправданный. Как и 32 бита с плавающей точкой.
Далее. Не торопитесь покупать фильтры питания, сетевые фильтры. Не торопитесь покупать внешние звуковые, дабы оградиться от помех. От этого толку будет мало. Потому что мы имеем дело с естественными шумами, которые возникают по причинам, которые Производителям преодолеть не удалось (влияние температуры, тепловой шум колебания молекул и пр.). Но имейте ввиду, что грамотная разводка аппаратуры всегда нужна! Гляньте в левый нижний угол на Lynx Two и L 22. Видите там стоят два чёрных бочонка с подписями L1 и L2, а также два алюминиевых бочонка с надписью Nichicon 1000uF – вот это и есть фильтр питания, который стоит от силы пару баксов. Именно он помогает карте получать отличные шумовые характеристики. Но, несмотря на его низкую стоимость, никто кроме Lynx Studio их не ставит. Хотя может и ставят, но я не видел.
Ну, вот собственно и всё, что я хотел написать. Почему я не стал рассматривать частоту дискретизации? Лень. Но по большому счёту там нечего писать. Лично моё мнение – 48кГц нормально. 96кГц – идеально и даже многовато. Но что касается звуковых карт – то в ЦАПах стоят передискретизаторы (oversampling). Они умножают раз в 8 имеющуюся частоту дискретизации, и только после этого переводят в непрерывный «аналоговый» сигнал. Эта операция «сглаживает» звучание. Но такие цифровые фильтры стоят не везде. Там, где они есть – 48кГц звука за глаза хватит, а там, где нет – и 192кГц будет мало 🙂 Его наличие можно увидеть в спецификации (datasheet) к ЦАПу. А сам datasheet ищите или на сайте производителя, или в инете вообще. Фича называется 8x Oversampling Digital Filter – или как-то так.
Надеюсь теперь картина для кого-то прояснится. Ну если остались вопросы – пишите. Текст могу (и может буду) дополнять.
Примечания:
* — есть ЦАПы, у которых выход токовый. Но сразу после такого ЦАПа ставят преобразователь тока в напряжение.
** — на самом деле «цифры» тоже могут «шуметь». Это называется jitter – когда цифра либо приходит раньше, либо позже.
Частота дискретизации в два раза выше максимально записываемой. Т. е. при преобразовании в последовательность чисел из звуковой волны при записи требуется «делать отметки», считывать, вдвое чаще.
Материал в аудио-CD формате — 16-бит 44,1кГц. Это практически весь материал. Так что при воспроизведении разницы не будет.
Формат DVD-аудио поддерживает до 24 на 192.
Есть предположения, что человек может фиксировать более высокочастотные звуки, нежели 20кГц, однако вряд ли ушами.
Совершенно уверенно могу сказать что разница между простым 16,bit 44.1 khz звуком и hd аудио очень существенная и совершенно очевидная. При условии что вы нашли качественный HD аудио файл.
На простой встроенной звуковухе не тестил. И на совсем дешовых колонках тоже.
На наушниках косс порта про за 3 тыщи разница менее очевидна хотя наушники по качеству звука резко отличаются от основной массы ширпотреба.
Что хочу добавить. Часто аппаратура имеет встроенные вещи типа усиления баса ( та самая кнопка «субербас») что дает эффект сходный с 24 битным басом но во первых это обман потому что 16 битная запись не содержит такой амплитуды а аппаратура только «растягивает» амплитуду и соответственно все таки красота баса немного теряется и он становится почти одинаковым на всех записях.
Примерно такая же картина с высокими частотами — есть всякие примочки и фильтры и звуковые процессоры которые существенно улучшают на слух высокие частоты в 44.1 записи примешивая туда всякие дополнительные вещи, особенно в аппаратуре высокого уровня, но это все равно обман слуха хоть и очень качественный и изощренный.
В итоге получается ситуация ка с mpз звуком — вродебы всена месте все слышно но ощущение как будто тебя обокрали а ты не можешь понять в чем именно и соответсвенно удовольствия от прослушивания меньше и башка трещит.
Совершенно уверенно могу сказать что разница между простым 16,bit 44.1 khz звуком и hd аудио очень существенная и совершенно очевидная. При условии что вы нашли качественный HD аудио файл.
На простой встроенной звуковухе не тестил. И на совсем дешовых колонках тоже.
На наушниках косс порта про за 3 тыщи разница менее очевидна хотя наушники по качеству звука резко отличаются от основной массы ширпотреба.
Что хочу добавить. Часто аппаратура имеет встроенные вещи типа усиления баса ( та самая кнопка «субербас») что дает эффект сходный с 24 битным басом но во первых это обман потому что 16 битная запись не содержит такой амплитуды а аппаратура только «растягивает» амплитуду и соответственно все таки красота баса немного теряется и он становится почти одинаковым на всех записях.
Примерно такая же картина с высокими частотами — есть всякие примочки и фильтры и звуковые процессоры которые существенно улучшают на слух высокие частоты в 44.1 записи примешивая туда всякие дополнительные вещи, особенно в аппаратуре высокого уровня, но это все равно обман слуха хоть и очень качественный и изощренный.
В итоге получается ситуация ка с mpз звуком — вродебы всена месте все слышно но ощущение как будто тебя обокрали а ты не можешь понять в чем именно и соответсвенно удовольствия от прослушивания меньше и башка трещит.
Сохранить и прочитать потом —
Прим. перев.: Это перевод второй (из четырех) частей развернутой статьи Кристофера «Монти» Монтгомери (создателя Ogg Free Software и Vorbis) о том, что, по его мнению, является одним из наиболее распространенных и глубоко укоренившихся заблуждений в мире меломанов.
Частота 192 кГц считается вредной
Музыкальные цифровые файлы с частотой 192 кГц не приносят никакой выгоды, но всё же оказывают кое-какое влияние. На практике оказывается, что их качество воспроизведения немного хуже, а во время воспроизведения возникают ультразвуковые волны.
И аудиопреобразователи, и усилители мощности подвержены влиянию искажений, а искажения, как правило, быстро нарастают на высоких и низких частотах. Если один и тот же динамик воспроизводит ультразвук наряду с частотами из слышимого диапазона, то любая нелинейная характеристика будет сдвигать часть ультразвукового диапазона в слышимый спектр в виде неупорядоченных неконтролируемых нелинейных искажений, охватывающих весь слышимый звуковой диапазон. Нелинейность в усилителе мощности приведет к такому же эффекту. Эти эффекты трудно заметить, но тесты подтвердили, что оба вида искажений можно расслышать.
График выше показывает искажения, полученные в результате интермодуляции звука частотой 30 кГц и 33 кГц в теоретическом усилителе с неизменным коэффициентом нелинейных искажений (КНИ) около 0.09%. Искажения видны на протяжении всего спектра, даже на меньших частотах.
Неслышимые ультразвуковые волны способствуют интермодуляционным искажениям в слышимом диапазоне (светло-синяя зона). Системы, не предназначенные для воспроизведения ультразвука, обычно имеют более высокие уровни искажений, около 20 кГц, дополнительно внося вклад в интермодуляцию. Расширение диапазона частот для включения в него ультразвука требует компромиссов, которые уменьшат шум и активность искажений в пределах слышимого спектра, но в любом случае ненужное воспроизведение ультразвуковой составляющей ухудшит качество воспроизведения.
Есть несколько способов избежать дополнительных искажений:
- Динамик, предназначенный только для воспроизведения ультразвука, усилитель и разделитель спектра сигнала, чтобы разделить и независимо воспроизводить ультразвук, который вы не можете слышать, чтобы он не влиял на другие звуки.
- Усилители и преобразователи, спроектированные для воспроизведения более широкого спектра частот так, чтобы ультразвук не вызывал слышимых нелинейных искажений. Из-за дополнительных затрат и сложности исполнения, дополнительный частотный диапазон будет уменьшать качество воспроизведения в слышимой части спектра.
- Качественно спроектированные динамики и усилители, которые совсем не воспроизводят ультразвук.
- Для начала можно не кодировать такой широкий диапазон частот. Вы не можете (и не должны) слышать ультразвуковые нелинейные искажения в слышимой полосе частот, если в ней нет ультразвуковой составляющей.
Все эти способы нацелены на решение одной проблемы, но только 4 способ имеет какой-то смысл.
Если вам интересны возможности вашей собственной системы, то нижеследующие сэмплы содержат: звук частотой 30 кГц и 33 кГц в формате 24/96 WAV, более длинную версию в формате FLAC, несколько мелодий и нарезку обычных песен с частотой, приведенной к 24 кГц так, что они полностью попадают в ультразвуковой диапазон от 24 кГц до 46 кГц.
Тесты для измерения нелинейных искажений:
- Звук 30 кГц + звук 33 кГц (24 бит / 96 кГц) [5-секундный WAV] [30-секундный FLAC]
- Мелодии 26 кГц – 48 кГц (24 бит / 96 кГц) [10-секундный WAV]
- Мелодии 26 кГц – 96 кГц (24 бит / 192 кГц) [10-секундный WAV]
- Нарезка из песен, приведенных к 24 кГц (24 бит / 96 кГц WAV) [10-секундный WAV] (оригинальная версия нарезки) (16 бит / 44. 1 кГц WAV)
Предположим, что ваша система способна воспроизводить все форматы с частотами дискретизации 96 кГц [6]. При воспроизведении вышеуказанных файлов, вы не должны слышать ничего, ни шума, ни свиста, ни щелчков или каких других звуков. Если вы слышите что-то, то ваша система имеет нелинейную характеристику и вызывает слышимые нелинейные искажения ультразвука. Будьте осторожны при увеличении громкости, если вы попадете в зону цифрового или аналогового ограничения уровня сигнала, даже мягкого, то это может вызвать громкий интермодуляционный шум.
В целом, не факт, что нелинейные искажения от ультразвука будут слышимы на конкретной системе. Вносимые искажения могут быть как незначительны, так и довольно заметны. В любом случае, ультразвуковая составляющая никогда не является достоинством, и во множестве аудиосистем приведет к сильному снижению качества воспроизведения звука. В системах, которым она не вредит, возможность обработки ультразвука можно сохранить, а можно вместо этого пустить ресурс на улучшение качества звучания слышимого диапазона.
Недопонимание процесса дискретизации
Теория дискретизации часто непонятна без контекста обработки сигналов. И неудивительно, что большинство людей, даже гениальные доктора наук в других областях, обычно не понимают её. Также неудивительно, что множество людей даже не осознают, что понимают её неправильно.
Дискретизированные сигналы часто изображают в виде неровной лесенки, как на рисунке выше (красным цветом), которая выглядит как грубое приближение к оригинальному сигналу. Однако такое представление является математически точным, и когда происходит преобразование в аналоговый сигнал, его график становится гладким (голубая линия на рисунке).
Наиболее распространенное заблуждение заключается в том, что, якобы, дискретизация – процесс грубый и приводит к потерям информации. Дискретный сигнал часто изображается как зубчатая, угловатая ступенчатая копия оригинальной идеально гладкой волны. Если вы так считаете, то можете считать, что чем больше частота дискретизации (и чем больше бит на отсчет), тем меньше будут ступеньки и тем точнее будет приближение. Цифровой сигнал будет все больше напоминать по форме аналоговый, пока не примет его форму при частоте дискретизации, стремящейся к бесконечности.
По аналогии, множество людей, не имеющих отношения к цифровой обработке сигналов, взглянув на изображение ниже, скажут: «Фу!» Может показаться, что дискретный сигнал плохо представляет высокие частоты аналоговой волны, или, другими словами, при увеличении частоты звука, качество дискретизации падает, и частотная характеристика ухудшается или становится чувствительной к фазе входного сигнала.
Это только так выглядит. Эти убеждения неверны!
Комментарий от 04.04.2013: В качестве ответа на всю почту, касательно цифровых сигналов и ступенек, которую я получил, покажу реальное поведение цифрового сигнала на реальном оборудовании в нашем видео Digital Show & Tell, поэтому можете не верить мне на слово.
Все сигналы частотой ниже частоты Найквиста (половина частоты дискретизации) в ходе дискретизации будут захвачены идеально и полностью, и бесконечно высокая частота дискретизации для этого не нужна. Дискретизация не влияет на частотную характеристику или фазу. Аналоговый сигнал может быть восстановлен без потерь – таким же гладким и синхронным как оригинальный.
С математикой не поспоришь, но в чем же сложности? Наиболее известной является требование ограничения полосы. Сигналы с частотами выше частоты Найквиста должны быть отфильтрованы перед дискретизацией, чтобы избежать искажения из-за наложения спектров. В роли этого фильтра выступает печально известный сглаживающий фильтр. Подавление помехи дискретизации, на практике, не может пройти идеально, но современные технологии позволяют подойти к идеальному результату очень близко. А мы подошли к избыточной дискретизации.
Частоты дискретизации свыше 48 кГц не имеют отношения к высокой точности воспроизведения аудио, но они необходимы для некоторых современных технологий. Избыточная дискретизация (передискретизация) – наиболее значимая из них [7].
Идея передискретизации проста и изящна. Вы можете помнить из моего видео «Цифровое мультимедиа. Пособие для начинающих гиков», что высокие частоты дискретизации обеспечивают гораздо больший разрыв между высшей частотой, которая нас волнует (20 кГц) и частотой Найквиста (половина частоты дискретизации). Это позволяет пользоваться более простыми и более надежными фильтрами сглаживания и увеличить точность воспроизведения. Это дополнительное пространство между 20 кГц и частотой Найквиста, по существу, просто амортизатор для аналогового фильтра.
На рисунке выше представлены диаграммы из видео «Цифровое мультимедиа. Пособие для начинающих гиков», иллюстрирующие ширину переходной полосы для ЦАП или АЦП при частоте 48 кГц (слева) и 96 кГц (справа).
Это только половина дела, потому что цифровые фильтры имеют меньше практических ограничений в отличие от аналоговых, и мы можем завершить сглаживание с большей точностью и эффективностью. Высокочастотный необработанный сигнал проходит сквозь цифровой сглаживающий фильтр, который не испытывает проблем с размещением переходной полосы фильтра в ограниченном пространстве. После того, как сглаживание завершено, дополнительные дискретные отрезки в амортизирующем пространстве просто откидываются. Воспроизведение передискретизированного сигнала проходит в обратном порядке.
Это означает, что сигналы с низкой частотой дискретизации (44.1 кГц или 48 кГц) могут обладать такой же точностью воспроизведения, гладкостью АЧХ и низким уровнем наложений, как сигналы с частотой дискретизации 192 кГц или выше, но при этом не будет проявляться ни один из их недостатков (ультразвуковые волны, вызывающие интермодуляционные искажения, увеличенный размер файлов). Почти все современные ЦАП и АЦП производят избыточную дискретизацию на очень высоких скоростях, и мало кто об этом знает, потому что это происходит автоматически внутри устройства.
ЦАП и АЦП не всегда умели передискретизировать. Тридцать лет назад некоторые звукозаписывающие консоли использовали для звукозаписи высокие частоты дискретизации, используя только аналоговые фильтры. Этот высокочастотный сигнал потом использовался для создания мастер-дисков. Цифровое сглаживание и децимация (повторная дискретизация с более низкой частотой для CD и DAT) происходили на последнем этапе создания записи. Это могло стать одной из ранних причин, почему частоты дискретизации 96 кГц и 192 кГц стали ассоциироваться с производством профессиональных звукозаписей.
16 бит против 24 бит
Хорошо, теперь мы знаем, что сохранять музыку в формате 192 кГц не имеет смысла. Тема закрыта. Но что насчет 16-битного и 24-битного аудио? Что же лучше?
16-битное аудио с импульсно-кодовой модуляцией действительно не полностью покрывает теоретический динамический звуковой диапазон, который способен слышать человек в идеальных условиях. Также есть (и будут всегда) причины использовать больше 16 бит для записи аудио.
Ни одна из этих причин не имеет отношения к воспроизведению звука – в этой ситуации 24-битное аудио настолько же бесполезно, как и дискретизация на 192 кГц. Хорошей новостью является тот факт, что использование 24-битного квантования не вредит качеству звучания, а просто не делает его хуже и занимает лишнее место.
Примечания к Части 2
6. Многие из систем, которые неспособны воспроизводить сэмплы 96 кГц, не будут отказываться их воспроизводить, а будут незаметно субдискретизировать их до частоты 48 кГц. В этом случае звук не будет воспроизводиться совсем, и на записи ничего не будет, вне зависимости от степени нелинейности системы.
7. Передискретизация – не единственный способ работы с высокими частотами дискретизации в обработке сигналов. Есть несколько теоретических способов получить ограниченный по полосе звук с высокой частотой дискретизации и избежать децимации, даже если позже он будет субдискретизирован для записи на диски. Пока неясно, используются ли такие способы на практике, поскольку разработки большинства профессиональных установок держатся в секрете.
8. Неважно, исторически так сложилось или нет, но многие специалисты сегодня используют высокие разрешения, потому что ошибочно полагают, что звук с сохраненным содержимым за пределами 20 кГц звучит лучше. Прямо как потребители.
8 и 16 бит в чем разница
Подскажите пожалуйста,что значит в фотошопе Глубина 8/бит канал и в чём разница между 8/бит и 16/бит
Глубина цвета — это количество бит (разрядов двоичного числа) , используемых для описания тона для каждого из цветовых каналов (channel). Например, в системе RGB три цветовых канала (Red-красный, Green-зеленый, Blue-синий) . Вместе все эти три канала образуют квадратную точку — один пиксель. В системе RGB работают все современные сканеры и цифровые фотоаппараты.
8 бит. 8 разрядов в двоичной системе (компьютер работает в двоичной системе счисления) . В 8-ми разрядах при двоичной системе можно зашифровать максимум 256 целых чисел (включая ноль) . Это еще в школе проходят, на информатике. 🙂 Формат JPEG (jpg) работает только с 8-битными изображениями. поэтому не снимайте в JPEG, если есть возможность. Бывает, где-то упоминаются 24-битные изображения — это значит 8+8+8=24 бита на все каналы.
16 бит. В 16 разрядов уже можно запихнуть 65536 значений на каждый канал (256 в квадрате) . Это означает, что при увеличении размера файла в два раза (8 bit -> 16 bit на канал) запас качества увеличивается не в 2, а в 256 раз. Именно поэтому предпочтительно сохранять и обрабатывать фотографии при глубине цвета 16 бит — и запас качества (информации) гораздо больше, и при каждой операции при обработке фотографии значения на каждом из каналов грубо не округляются. Преобразованием 8-битного изображения в 16-битное качество не увеличить, но это позволит имеющееся качество в дальнейшем не терять. Формат TIFF поддерживает 16-битные изображения и является стандартом для фотографий с этой глубиной цвета.
32 бит. Соответственно, 4294967296 значений яркости на каждый из каналов. Сравните с 8-битными изображениями. 🙂 C 32-битными изображениями Photoshop умеет работать только начиная с версии CS2, и то сильно ограниченно. Поэтому стандарт для обработки фотографий на сегодняшний день — 16 бит на канал.
Я доступно объяснил? 🙂
«запас качества» увеличивается не в 256, а в
2^(8+8+8) == 16777216
2^(16+16+16) == 2^12 == это в 16777216 больше, чем 16777216.
А одноканальных JPG народ не видел, хоть они и есть.
8 и 16 бит в чем разница
Многие из вас знают, что изображение может быть 8 и 16 бит. При просмотре их не отличить — тогда в чем же разница? Именно на этот вопрос отвечает эта статья.
Начнем с определения «Глубины цвета» — это количество бит, используемое при кодировании одного пикселя в одном канале.
Adobe Photoshop задает яркость пикселя только целыми числами: 0 — это черный, 255 — белый (в 8 и 16 битном режимах совпадают). В 8 бит/канал в каждом канале может быть всего 256 градаций яркости. 16 битный файл имеет больший запас информации, за счет этого изменение яркости от черного до белого происходит плавнее (с большим количеством градаций, число которых уже равно 32768).
Для наглядности теоретической части я создал два файла (8 бит и 16 бит соответственно), залив их идентичным черно-белым градиентом.
Для каждого из вариантов были произведены минимальные действия в корректирующем слое «Curves», который в дальнейшем был скопирован по 3 раза.
Изображение 8 бит и 16 бит: в чем разница
Стандартное мнение на этот счет — чем больше битов, тем лучше. Но действительно ли мы понимаем разницу между 8-битными и 16-битными изображениями? Фотограф Натаниэл Додсон детально объясняет различия в этом 12-минутном видео:
Большее число битов, поясняет Додсон, означает, что у вас есть больше свободы при работе с цветами и тонами до появления различных артефактов на изображении, таких как бандинг (“полосатость”).
Если вы снимаете в JPEG, то ограничиваете себя битовой глубиной в 8 бит, которая позволяет работать с 256 уровнями цвета на каждый канал. Формат RAW может быть 12-, 14- или 16-битным, при этом последний вариант дает 65 536 уровней цветов и тонов — то есть гораздо больше свободы при постобработке изображения. Если считать в цветах, то надо перемножить уровни всех трех каналов. 256х256х256 ≈ 16,8 миллиона цветов для 8-битного изображения и 65 536х65 536х65 536 ≈ 28 миллиардов цветов для 16-битного.
Чтобы наглядно представить разницу между 8-битным и 16-битным изображением, представьте себе первое как здание высотой 256 футов — это 78 метров. Высота второго “здания” (16-битного фото) будет 19,3 километра — это 24 башни Бурдж Халифа, поставленных одна на другую.
Обратите внимание, что нельзя просто открыть 8-битное изображение в Photoshop и “превратить” его в 16-битное. Создавая 16-битный файл, вы даете ему достаточно “пространства”, чтобы хранить 16 битов информации. Конвертируя 8-битное изображение в 16-битное, вы получите 8 битов неиспользованного “пространства”.
JPEG: нет деталей, плохой цвет, RAW: деталей не много
Но дополнительная глубина означает больший размер файла — то есть изображение будет обрабатываться дольше, а также потребует больше места для хранения.
В конечном счете, все зависит от того, какую степень свободы вы хотите иметь при постобработке снимков, а также от возможностей вашего компьютера.
Более подробно о выборе глубины изображения — в видео. Оно на английском — не забудьте включить субтитры и перевод на русский. Другие туториалы от Натаниэла Додсона — на его официальном канале в YouTube.
О разрядности процессоров
Целью данной статьи является попытка посеять сомнение в голове читателя, уверенного, что он знает о разрядности всё или почти всё. Но сомнение должно быть конструктивным, дабы сподвигнуть на собственное исследование и улучшить понимание.
Термин «разрядность» часто используют при описании вычислительных устройств и систем, понимая под этим число бит, одновременно хранимых, обрабатываемых или передаваемых в другое устройство. Но именно применительно к центральным процессорам (ЦП), как к наиболее сложным представителям вычислительного железа, не делимым на отдельные детали (до тех пор, пока кто-то не придумал, как продать отдельно кэш или умножитель внутри чипа), понятие разрядности оказывается весьма расплывчатым. Продемонстрировать это поможет умозрительный пример.
Представьте себе, что вокруг благодатные 80-е, в мире (всё ещё) десятки производителей ЦП, и вы работаете в одном из них над очередным поколением. Никаких 256-битных SSE8, встроенных GPU и 5-канальных контроллёров памяти на свете пока нет, но у вас уже есть готовый 16-битный процессор (точнее, «16-битный» пишется в технической документации), в котором 16 бит везде и во всём — от всех внешних шин до архитектурного размера обрабатываемых данных. Реальным примером такого ЦП могут быть первые однокорпусные (правда, не однокристальные) ЦП для архитектуры DEC PDP-11. И вот приходит задание руководства — разработать новое, обратно совместимое поколение этого же ЦП, которое будет 32-битным — не уточняя, что понимается под последним. Именно это понимание и предстоит прояснить в первую очередь. Итак, наш главный вопрос: что именно надо удвоить по разрядности в нашем пока насквозь 16-битном ЦП, чтобы получившийся процессор мог называться 32-битным? Чтобы решать задачу было легче, применим два подхода: систематизируем определения и посмотрим на примеры.Систематизируем
Первое, что приходит в голову — разрядность чего именно считать? Обратимся к определению любой информационной системы: её три основных функции — это обработка, хранение и ввод-вывод данных, за которые отвечают, соответственно, процессор(ы), память и периферия. Учитывая, что сложная иерархически самоподобная система состоит из многих компонент, можно утверждать, что такое разделение функций сохраняется и на компонентном уровне. Например, тот же процессор в основном обрабатывает данные, но он также обязан их хранить (для чего у него есть относительно небольшая память) и обмениваться с другими компонентами (для этого есть разные шины и их контроллёры). Поэтому будем функционально разделять разрядности обработки, хранения и обмена информации.
Рискну предположить, что все производители любого программируемого «железа», особенно процессоров, на 90% стараются не для конечных пользователей, а для программистов. Следовательно, с точки зрения производителей процессор должен выполнять нужные команды нужным образом. С другой стороны, детали структуры кристалла (топологические, электрические и физические параметры отдельных транзисторов, вентилей, логических элементов и блоков) могут быть скрыты не только от пользователя, но и от программиста. Выходит, что разрядность надо отличать и по реализации — физическую и архитектурную.
Следует добавить, что программисты тоже бывают разные: большинство пишут прикладные программы на языках высокого уровня с помощью компиляторов (что делает код до некоторой степени платформонезависимым), некоторые пишут драйверы и компоненты ОС (что заставляет более внимательно относиться к учёту реальных возможностей аппаратной части), есть творцы на ассемблере (явно требующем знания целевого процессора), а кто-то пишет сами компиляторы и ассемблеры (аналогично). Поэтому под программистами далее будем понимать именно тех, для кого детали аппаратной реализации важны если не для написания программы вообще, то хотя бы для её оптимизации по скорости — «архитектурная» разрядность чего-либо будет относиться именно к программированию на родном машинном языке процессора или более удобном ассемблере, не залезая при этом в нутро ЦП (это уже вопросы микроархитектуры, которую мы для большего различия и назвали физической реализацией). Описанные нюансы всё равно влияют на всех программистов, т. к. языки высокого уровня почти всегда переводятся компиляторами в машинный код, а компиляторы тоже должен кто-то написать. Исключения в виде интерпретируемых языков тоже не стоят в стороне — сами интерпретаторы тоже создаются с помощью компиляторов.
Осталось рассмотреть, разрядность какой именно информации нам интересна. Что вообще потребляет и генерирует ЦП в информационном смысле? Команды, данные, адреса и сигнально-управляющие коды. О последних речь не идёт — их разрядность жёстко зафиксирована в конкретной аппаратной реализации и в большинстве случаев программно не управляема. Чуть трудней с командами — в семействе архитектур RISC, например, разрядность любого обращения к памяти должна быть равна физической разрядности шины данных процессора, в т.ч. и при считывании кода (кроме некоторых послаблений в современных ARM и PowerPC). Это хорошо для ЦП — нет проблем с невыровненным доступом, все команды имеют одинаковую, либо переменную, но просто вычисляемую длину. Зато плохо для программиста — RISC это усечённый набор команд, которые ещё и занимают больше места, чем при более компактном кодировании (для того же алгоритма нужно больше команд, но и для того же числа команд надо больше байтов). Поэтому именно CISC-парадигма завоевала наибольший подход с её разнообразием и переменной длинной команд, не равной разрядности чего-либо. Разумеется, все современные ЦП внутри — настоящие RISC, но это только физически, а не архитектурно. Остались только два вида информации — данные и адреса. Их и рассмотрим.Собираем
У нас имеется три критерия видов разрядности: функциональный (обработки, хранения и обмена), реализационный (физическая и архитектурная) и типовой (данных и адресов). Итого уже 12 видов этой непонятной штуки. Предположим, что на каждую комбинацию критериев для нашего исходного ЦП мы отвечаем «16-битная» (и физическая разрядность обработки данных, и архитектурная хранения адресов, и все остальные). Теперь посмотрим, какие из этих вопросов обязательно должны давать ответ «32-битная», чтобы получившийся процессор оказался именно таким.
Начнём с архитектурной части. Должен ли ЦП хранить данные и адреса в логическом 32-битном формате, чтобы называться 32-битным? Насчёт данных, очевидно, да, а вот по поводу адресов всё не так просто. Почти все 8-битные (по данным) ЦП имеют возможность хранить 16-битные адреса в парах регистров (иначе им не видать распространённой на этих платформах 16-битной адресации), но от этого их не называют 16-битными. Может быть, если ЦП сможет хранить 32-битные данные, но всего-то 16-битные адреса, его уже можно называть 32-битным?..
На аналогичные вопросы об архитектурных вычислениях над 32-битными данными и адресами, а также программно 32-битном обмене данных с программно 32-битной адресацией ответ может быть таким же — с данными надо, а с адресами не факт.
Intel 486DX2. Где-то здесь притаилась разрядность…
Перейдём на физическую реализацию. Должен ли ЦП хранить данные и адреса в физически 32-битном формате? Оказывается, не обязательно, т.к. для 32-битных операндов можно спарить регистры, чем успешно пользовались ещё 8-битные ЦП, начиная с i8080. А зилоговские 16-битные Z8000 могли даже счетверять регистры, получая 64-битный аргумент (только для данных). Это не так эффективно, т.к. полный объём данных, умещающийся в регистровом файле, не увеличится, но это и не требовалось. Зато всегда есть возможность обратиться и к старшей, и к младшей половине виртуального 32-битного регистра — камень в огороды архитектур IA-32 и MC68k, где можно обращаться только к младшей половине (в IA-32 — ещё и с префиксом, что замедляет выполнение).
Идём далее. Должен ли ЦП обрабатывать данные и адреса 32-битными физическими порциями? Оказывается, и это не требуется, операнды можно обрабатывать половинками в функциональных устройствах 16-битного размера. Стоит вспомнить процессор Motorola MC68000, применявшийся в первых Макинтошах, Амигах, Атари и других популярных машинах — он считался 32-битным, в нём есть 32-битные регистры, но нет ни одного 32-битного ФУ (оно появилось только в 68020). Зато есть целых три 16-битных АЛУ, два из которых умеют спариваться при выполнении 32-битной операции. У i8080 и Z80 8-битные АЛУ выполняли 16-битные операции для вычисления адреса последовательно над его байтами. Позже эта история повторилась с набором SSE и его 128-битными операндами, которые поначалу обрабатывались на 64-битных ФУ.
Наконец, обмен: нужно ли процессору физически принимать и передавать данные 32-битными порциями с 32-битной адресацией? На первый вопрос дали ответ почти все производители ЦП, выпустив чипы с половинной шириной шины: 8 бит для 16-битного i8088, 16 бит для 32-битных MC68000/010 и i80386SX/EX/CX, и даже 8 бит для 32-битного MC68008. С физической разрядностью шины адреса куда веселее. Начнём с того, что для многобайтовых шин данных (т.е. начиная с 16-битной) физическая адресация памяти может происходить по словам или по байтам. В первом случае на шину адреса всегда подаётся адрес слова, а шина данных считывает или записывает нужную его часть — от отдельного байта до слова целиком. Для обозначения разрядности доступа может применяться отдельная шина байт-маски (в архитектуре x86 такой приём начал применяться со времён i386 — по биту на каждый байт шины данных), либо комбинация управляющих сигналов с младшими битами шины адреса, которые в этом режиме не нужны (для 32-биной шины данных адрес слова нацело делится на 4, а потому младшие 2 бита шины адреса всегда равны нулю) — так было до выхода i386. Случай же адресации байтов возможен лишь при динамической подстройке ширины шины и из широко известных ЦП применялся только в MC68020/030. В результате к сегодняшнему дню используется именно адресация слов вместе с байт-маской, поэтому физическая разрядность шины адреса оказывается меньше её логической ширины на число бит, на единицу меньшее разрядности шины данных в байтах. Из чего следует, что 32-битная физическая шина адреса может быть только при 8-битной шине данных, на что ни один архитектор и инженер в здравом уме не пойдёт по очевидным соображениям.
Но это ещё не всё. Зачем нам вообще 32-битная физическая или логическая адресация? Середина-конец 80-х, на рынке только-только появились мегабитные микросхемы памяти, типичный объём памяти для ПК пока что измеряется сотнями килобайт, но чуть позже — мегабайтами. А 32-битная адресация позволит получить доступ к 4 ГБ физического ОЗУ! Да кому вообще такое может понадобиться в ближайшие лет 20 в персоналках?! Неудивительно, что первые популярные «32-битные» ЦП имели совсем не 32 бита логической ширины шины адреса: MC68000 имел 24 (23 физических + 1 для управления разрядами), а MC68008 — и вовсе 20. Intel 386SX (вышедший на 3 года позже оригинального полностью 32-битного i80386), помимо уполовинивания шины данных, сократил и шину адреса до 24 (23 физических) бит, а его встраиваемые версии 386EX/CX имели 26-битную шину. Более того, первые чипсеты, позволявшие оперировать 32-битными адресами, появились лишь в 90-х, а первые материнские платы, имевшие достаточное число слотов памяти, чтобы набрать >4 ГБ модулями максимального на тот момент размера — лишь в 2000-х. Хотя первые ЦП с 64-битной физической шиной адреса (IBM/Motorola PowerPC 620) появились аж в 1994 г.. Выводим
Итак, физически в процессоре вообще ничего не требуется делать 32-битным. Достаточно лишь архитектурно убедить программиста, что ЦП выполняет 32-битные операции одной командой. И хотя она при отсутствии полноценных внутренних ресурсов неизбежно будет декодироваться в цепочки микрокода для управления 16-битными физическими порциями информации и аппаратными блоками — это уже программиста не волнует. Так что же, достаточно переписать прошивку, переделать декодер и схему управления, и вот наш 16-битный процессор сразу стал 32-битным?
Как известно, любую хорошую идею можно довести до абсурда, и тогда она сама себя дискредитирует. Увеличение разрядности ЦП — не исключение. На этом месте архитектурщик сразу должен задаться вопросом — а зачем всё это? Увеличивать разрядность данных хорошо для ускорения работы с ними (часто требуется обрабатывать значения, не умещающиеся в 16 бит), а адресов — для получения возможности оперировать большими объёмами данных (ограничение в 64 КБ для 16-битной адресации, кое-как ослабленное сегментной моделью IA-16, сковывало программистов уже в середине 80-х). Можно, конечно, сделать страничную адресацию с программно переключаемыми банками (могли же 8-битные ЦП адресовать 1 МБ на популярных дешёвых ПК и игровых приставках), но ценой усложнения программ и замедления доступа к памяти. Аналогично — разве имеет смысл делать 32-битность для данных такой, что она почти не ускоряет производительность по сравнению с обработкой 32-битных чисел на 16-битной платформе под управлением программы, а не микрокода? Таким образом мы только упростим программирование, сэкономив на числе команд, но не получим скачок в скорости. Из чего мы приходим к выводу — увеличение разрядности должно реализовываться так, чтобы оно реально привело к качественному (больше памяти) и количественному (быстрее операции) скачку возможностей архитектуры. «Больше памяти» здесь относится именно к качественному развитию, т.к. многие алгоритмы и приложения вообще откажутся работать при недостатке ОЗУ, в то время как даже медленный процессор всё равно рано или поздно программу выполнит. Виртуальная память с дисковой подкачкой бессмысленна при менее чем 32-битной реализации.
Но означает ли всё это, что в ЦП как можно больше ресурсов, и аппаратных, и архитектурных, должны быть 32-битными, чтобы его можно было бы назвать полноценным 32-битным процессором? Совсем нет. Возьмём тот же MC68000 — у него 32-битная архитектура для данных и адресов и 32-битные регистры, но 16-битные АЛУ и внешняя шина данных и 24-битная физическая внешняя адресация. Тем не менее, недостаточная «32-битность» не мешает ему обгонять появившийся на 3 года позже «16-битный» 80286: на популярном в 1980-е бенчмарке Dhrystones MC68000 на 8 МГц набирает 2100 «попугаев», а 286 на 10 МГц — 1900 (также 16-битный i8088 на 4,77 МГц — 300).
Но всё это нам не поможет ответить на вопрос — что же такое разрядность процессора? В момент, когда мы уже было пришли к некоему заключению, на сцене появляется новый герой — тип данных. Всё вышеизложенное имело отношение лишь к целочисленным вычислениям и их аргументам. Но ведь есть ещё и вещественные. Кроме того, пока что мы оперируем скалярными величинами, но есть ещё и векторные. А ведь, по слухам, Intel намерена встроить вещественный сопроцессор прямо внутрь своего нового 80486 (напомню: на дворе у нас, условно — 80-е годы). С учётом того, что внутреннее физическое и архитектурное представление данных (с адресами FPU не работает) 80-битное — как же тогда называть «четвёрку» — «32/80-битным» процессором? Вернёмся обратно в настоящее — как называть Pentium MMX, который откусил 64 бита от каждого 80-битного скалярного вещественного регистра и назвал их целочисленным векторным регистром? А Pentum Pro/II с 256-битной шиной данных между кэшем L2 и ядром? (Ещё ранее MIPS R4000 и его варианты имели внутренний контроллёр L2 с внешней 128-битной шиной до самого кэша. ) А как назвать Pentium III с его 128-битными регистрами XMM, хотя в каждом таком векторе могут пока храниться лишь 32-битные компоненты, а обрабатываться лишь парами в 64-битных ФУ, но не четвёрками? А как воспринимать готовящиеся сейчас для новых архитектур (в частности, Intel Larrabee) команды векторной адресации типа Scatter и Gather, где части векторного регистра воспринимаются как адреса, а не данные, и потому адресация тоже может считаться ххх-битной?
Современный спор о переходе с 32-битной на 64-битную платформу повторяет эту историю с дополнениями, ещё более подсаливающими и так разнообразное по вкусу блюдо. Прежде всего, если посмотреть на темпы удвоения разрядности (что бы под ней не понимали) однокристальных ЦП, то окажется, что переход от первых 4-битных к первым 32-битным произошёл всего за 8 лет — c 1971 г. (i4004) по 1979 г. (MC68000 и куда менее известный NS32016). Следующее удвоение до 64 бит потребовало 10 лет — i860 имел 32-битное целое скалярное АЛУ и 32-битные универсальные регистры со спариванием, но 64-битные FPU и целочисленное векторное ФУ, 64-битные внешние шины и, впервые, внутреннюю 128-битную шину ядро-кэш. А пока 64 бита добрались до ПК — прошло ещё лет 15, хотя 64-битный доступ к памяти (через 64-битную же шину данных, но для «32-битного» процессора) появился уже в первых Pentium в 1993 г.. А дело в том, что для целочисленных скалярных вычислений два главных типа операндов — данные и адреса — пока достаточно было иметь лишь 32-битными. Об избыточности 32-битной адресации для 80-90-х гг. уже сказано, но и жёсткая необходимость в 64-битных целочисленных вычислениях, в отличие от 32-битных, также до сих пор не возникала, да и не просматривается и сейчас. Для целых чисел диапазон от –2·109 до 2·109 или от 0 до 4·109 покрывает подавляющее большинство нужд, а редкие моменты 64-битности вполне удовлетворяются дедовским способом — операциями над частями операндов с переносом, что не так уж сильно медленнее и доступно с первых моментов появления 32-битных архитектур. Дополнительной пикантности добавляет тот факт, что 64-битная арифметика над целыми числами в архитектуре x86 появились ещё до AMD64 и EM64T, причём сразу векторная — начиная с набора SSE2 (2001 г. ) существуют команды paddq и psubq для сложения и вычитания целых 64-битных компонентов, а команды 32-битного перемножения для любой архитектуры дают 64-битное число (команды деления, соответственно — его принимают; аналогично для многих 16-битных платформ, включая IA-16).
Разрядности некоторых процессоров для ПК
Критерий | Разрядность | |||||||||||
Функциональный | обработки | хранения | обмена | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Реализационный | физич. | архитектурн. | физич. | архитектурн. | физич. | архитектурн. | ||||||
Типовой (D: данных; A: адресов) | D | A | D | A | D | A | D | A | D | A | D | A |
i8080/85, Z80 | 8 | 8 | 8-16 | 16 | 8 | 8 | 8-16 | 16 | 8 | 16 | 8-16 | 16 |
Z8000 | 16 | 16 | 8-64 | 16 | 16 | 16 | 8-64 | 16 | 8-16 | 23 | 8-64 | 23 |
MC68000/010 (MC68008) | 16 | 16 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-16 (8) | 24 (20) | 8-32 | 32 |
MC68020/030 | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-32 | 32 | 8-32 | 32 |
i8086/186* (i8088/188*) | 16 | 16 | 8-16 | 16 | 16 | 16 | 8-16 | 16 | 8-16 (8) | 20 | 8-16 | 20 |
i80286 | 16 | 16 | 8-16 | 16 | 16 | 16 | 8-16 | 16 | 8-16 | 24 | 8-16 | 24 |
i80386DX | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-32 | 32 | 8-32 | 32 |
i80386SX (EX/CX) | 32 | 32 | 8-32 | 32 | 32 | 32 | 8-32 | 32 | 8-16 | 24 (26) | 8-32 | 32 |
i860 | 32/64|64 | 32 | 8-64/64|64 | 32 | 32/64/32 | 32 | 8-64/64/64 | 32 | 64 | 64 | 8-64 | 64 |
i80486 | 32/80 | 32 | 8-32/80 | 32 | 32/80 | 32 | 8-32/80 | 32 | 32 | 32 | 8-80 | 32 |
Pentium, K5 (Pentium Pro) | 32/80 | 32 | 8-32/80 | 32 | 32/80 | 32 | 8-32/80 | 32 | 64 | 32 (36) | 8-80 | 32 (51) |
Pentium MMX (Pentium II) | 32/80|64 | 32 | 8-32/80|64 | 32 | 32/80|64 | 32 | 8-32/80|64 | 32 | 64 | 32 (36) | 8-80 | 32 (51) |
K6 (K6-2) | 32/80| 64(/64) | 32 | 8-32/80| 64(/64) | 32 | 32/80| 64(/64) | 32 | 8-32/80| 64(/64) | 32 | 64 | 32 | 8-80 | 32 |
Athlon | 32/80| 64/64 | 32 | 8-32/80| 64/64 | 32 | 32/80| 64/64 | 32 | 8-32/80| 64/64 | 32 | 64 | 36 | 8-80 | 51 |
Athlon XP | 32/80| 64/64 | 32 | 8-32/80| 64/32-128 | 32 | 32/80|64/128 | 32 | 8-32/80| 64/128 | 32 | 64 | 36 | 8-128 | 51 |
Pentium III (Pentium 4/M, Core) | 32/80| 64/64 | 32 | 8-32/80| 64(+128)/32-128 | 32 | 32/80| 64(+128)/128 | 32 | 8-32/80| 64(+128)/128 | 32 | 64 | 36 | 8-128 | 51 |
Pentium 4 D/EE (Athlon 64*) | 64/80| 64/64 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64(+16) | 40 | 8-128 | 52 |
Atom | 32-64/80| 64/64-128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64 | 36 | 8-128 | 51 |
Core 2 (i7*) | 64/80| 128/128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 64 (192+16) | 40 | 8-128 | 52 |
Athlon II*, Phenom (II)* | 64/80| 128/128 | 64 | 8-64/80|64 + 128/32-128 | 64 | 64/80|64 + 128/128 | 64 | 8-64/80|64 + 128/128 | 64 | 128+16 | 40 (48) | 8-128 | 52 |
* — Мультиплексированная шина данных и адреса (для ЦП с интегрированным контроллёром памяти — только межпроцессорная)
«A/B|C/D» — для данных указана разрядность скалярного целого / вещественного | векторного целого / вещественного доменов
«X+Y» — имеет домены этого вида двух разрядностей
«X-Y» — в зависимости от команды или ФУ принимает все промежуточные значения с целой степенью двойки
Если вы дочитали до этого места, то объявленная цель статьи, скорее всего, уже достигнута, а Идеальное Конечное Точное Определение разрядности так и не найдено. Может быть, его вообще нет, и это даже хорошо. В конце концов, если компьютер это главный инструмент для работы с информацией, то каждая IT-технология это метод улучшения работы компьютера. Разрядность сама по себе ничего не даст в отрыве от всего остального арсенала высоких инфотехнологий. PDA/коммуникаторы, мобильники, нетбуки, медиа-плееры и прочая карманная электроника, а также гигантское количество встроенных контроллёров и бортовых компьютеров отлично работают, увеличивая свою популярность и без всякой 64-битности. Так зачем тогда переходят на большие разрядности? Зачем, например, никому пока не нужная 64-битность в Intel Atom для нетбуков, где 8 ГБ памяти мало того, что никому не нужны, так ещё и за пару часов досуха выжмут батарею, а научные или экономические вычисления (где могут потребоваться 64 целых бита) никто запускать не будет? Один из возможных ответов: «потому что мы можем». Дополнительная пара миллионов транзисторов для удвоения ещё оставшихся 32-битными блоков утонет каплей в море вентилей, уже потраченных на всё остальное в этом же чипе. Галопирующий прогресс микроэлектроники как главного паровоза IT сделал интегральный транзистор таким дешёвым, что теперь лакомый для любого маркетолога шильдик «64 bit» обойдётся потребителю в десяток лишних центов, обеспечивая совсем не бутафорское, а вполне реальное ускорение на 10-50 % в 1-5 % приложений. И если мелкая овчинка стоит почти бесплатной выделки, почему нет?
Понятие 32-бита и 64-бита — подробное толкование концепций
- Категория ~ Фундаментальные статьи
- – Автор: Игорь (Администратор)
- Понятия 32-бита и 64-бита
- Понятие 32-бита и 64-бита толкование концепций
- 32-бита или 64-бита?
- Как долго будет длиться переход от 32-разрядного ПО к 64-битному?
- Ваша система состоит из трех частей
- Какие комбинации 32-бит и 64-бит совместимы и будут нормально выполняться?
- Аппаратная виртуализация является исключением из этого правила
- Эмуляция 64-битного процессора не вариант
- Ответы на часто задаваемые вопросы о 32-битных и 64-битных системах
- Ответы на часто задаваемые вопросы о 32- и 64-битных ОС Windows
- Могу ли я запустить Windows 2000 и Windows XP на 64-битных процессорах, а также использовать старое программное обеспечение?
- Как узнать, является ли система 64-разрядной?
- Подходят ли старые драйверы устройств для ОС Windows 64-бит?
- Можно ли перенести 32-битную систему на 64-разрядную Windows?
- Как узнать, приложение является 32- или 64-битным?
- Каковы различия между 32- и 64-битными версиями Windows?
- Можно ли выделить больше памяти для программы/процесса в 32-разрядном Windows, как показано в таблице 5?
- Можно ли выделить более 4 Гб оперативной памяти в 32-битной Windows?
Понятия 32-бита и 64-бита
В чем разница между 32-битами и 64-разрядами? Будет ли 32-битное приложение выполняться на вашей 64-битной операционной системе? Запустится ли 64-битная программа на вашем компьютере? Как решаются вопросы совместимости 32-бит и 64-бит? Если вы задавались этими или похожими вопросами, то данный материал поможет вам детально разобраться в понятиях 32-бита и 64-бита, их разнице, а так же найти ответы на некоторые распространенные вопросы.
Все рассмотрение будет идти с точки зрения трех сторон: аппаратного обеспечения, операционной системы и приложений. Поэтому, вы не только найдете ответы на свои вопросы, но и узнаете достаточно много тонкостей и особенностей об их взаимодействии и совместимости.
Понятие 32-бита и 64-бита толкование концепций
32-бита или 64-бита?
Увеличение числа битов сказывается на двух важных преимуществах:
- Больше битов означает, что данные обрабатываются более крупными кусками, это так же означает, что дробные числа представляются более точно
- Больше битов означает, что система может использовать больше физической памяти
32-битные системы были когда-то лучшими, потому что, в сравнении с 16-битными, они могли использовать до 4 ГБ оперативной памяти. Тем не менее, некоторым современным приложениям уже не достаточно 4 ГБ для выполнения своих задач. Поэтому 64-разрядные системы становятся все более популярными. Ведь, потенциально они позволяют использовать до 4 млрд раз больше оперативной памяти.
Начиная с 1995 года, когда в Windows 95 появилась поддержка 32-разрядных приложений, было разработано огромное число 32-битных приложений и создано не мало 32-битных операционных систем.
Это порождает одну проблему. Сегодня, практически все процессоры 64-разрядные. Тем не менее, большинство программного обеспечения 32-разрядное.
Примечание: В данном случае речь идет о том, что практически все преимущество 64-разрядных систем попросту никак не может быть использовано 32-битными приложениями. Разве что… Теперь… Таких программ… Можно… Одновременно… Запустить больше.
Как долго будет длиться переход от 32-разрядного ПО к 64-битному?
Главный вопрос длительности перехода заключается в порядке перехода системы. Вначале 64-бита должны поддерживать аппаратные средства (процессор, материнская плата и т.д.). Затем должны появиться операционные системы, которые будут поддерживать 64-бита. И уже в последнюю очередь, начинают разрабатываться программы, поддерживающие 64-разрядные ОС.
Если оглядываться назад, то переход от 16-битных к 32-битным ОС Windows, поддерживающих 32-разрядные процессоры, занял 10 лет (с 1985 по 1995 год). Тем не менее, даже сейчас, спустя порядка 20 лет, существует много людей, которые все еще используют 16-битные приложения на старых версиях Windows.
Производители аппаратных устройств и разработчики операционных систем извлекли опыт из предыдущего перехода. Поэтому 64-разрядные операционные системы были выпущены немногим после появления 64-битных процессоров. Остальное же зависит от приложений. Тем не менее, спустя более 10 лет после появления 64-битных процессоров и операционных систем на массовом рынке, количество 64-разрядных программ все еще не превышает 32-битное наследие.
Примечание: Конечно, все чаще продукты выпускаются и с версией для 64-разрядных систем. Но, переход еще не скоро завершится.
Ваша система состоит из трех частей
Теперь, все вопросы разрядности будут рассматриваться с точки зрения трех компонентов вашей системы. Проще говоря, представьте, что ваш компьютер условно состоит из:
- Процессора в качестве центральной и самой важной части
- Операционной системы в качестве среднего слоя
- Приложений выступающих в качестве внешнего слоя
Это означает, что:
- Для запуска 64-разрядной операционной системы вам нужна поддержка центрального уровня: 64-битный процессор.
- Для запуска 64-битного приложения вам нужна поддержка от всех более низких уровней: 64-битная ОС и 64-разрядный процессор.
Этого упрощения вполне достаточно, чтобы детально рассмотреть результат смешивания 32-битных и 64-разрядных частей.
Примечание: Конечно, для более подробного рассмотрения стоило бы добавить слой аппаратных устройств, которые будут поддерживать 64-битный процессор. А так же слой драйверов, которые будут передавать вызовы от операционной системы к устройствам. Тем не менее, даже этих трех слоев вполне достаточно, чтобы понять особенности и тонкости взаимодействия 32-бит с 64.
Какие комбинации 32-бит и 64-бит совместимы и будут нормально выполняться?
Теперь, можно перейти к более практическим знаниям и начать отвечать на общие вопросы.
Общее правило заключается в том, что 32-битное ПО будет отлично себя чувствовать на 64-битном компоненте нижнего уровня, а 64-бит не запустится на 32-разрядном компоненте. Это означает, что:
- 32-разрядная ОС будет запускаться без каких-либо проблем на базе 32-разрядного или 64-разрядного процессора
- 32-разрядное приложение будет запускаться без особый проблем на 32- и 64-битных операционных системах (Сноска: существует ряд нюансов, но об этом далее)
- Но, 64-битное приложение будет выполняться только на 64-разрядных операционных системах, которые запустятся только на 64-битных процессорах
Две таблицы ниже иллюстрируют данное правило:
Таблица 1 — Совместимость при 32-битном процессоре | ||||
Процессор (CPU) | 32-бита | 32-бита | 32-бита | 32-бита |
Операционная система (OS) | 32-бита | 32-бита | 64-бита | 64-бита |
Приложение | 32-бита | 64-бита | 32-бита | 64-бита |
Да | Нет | Нет | Нет |
Таблица 2 — Совместимость при 64-битном процессоре | ||||
Процессор (CPU) | 64-бита | 64-бита | 64-бита | 64-бита |
Операционная система (OS) | 64-бита | 64-бита | 32-бита | 32-бита |
Приложение | 64-бита | 32-бита | 32-бита | 64-бита |
Да | Да | Да | Нет |
Основной причиной того, что 32-бита всегда будут запускаться на 64-битах, заключается в том, что 64-битные компоненты были разработаны с учетом этого. В противном случае, их бы попросту никто не стал использовать. Таким образом, 64-битные системы обратно совместимы с 32-разрядными системами.
Примером обратной совместимости является Windows 64-бита. Операционная система включает подсистему Wow64, которая обеспечивает совместимость путем эмуляции 32-битной системы для приложений. Более подробно о том, как Wow64 устроена и какие ограничения накладываются на 32-разрядные приложения, вы можете узнать в обзоре Поддержка 32-битных приложений в 64-разрядной версии Windows. Одним важным моментом, которому уделяется внимание в этой статье, является то, что нельзя установить 32-битные драйвера на 64-разрядную операционную систему. Причина кроется в том, что драйверы должны запускаться на уровне ядра операционной системы, в то время как Wow64 выполняется на уровне пользователя (для избежания ошибок). Так что если у вас есть устройства с 32-битными драйверами, то необходимо прибегать к ряду уловок, которые так же подробно описаны в статье.
Аппаратная виртуализация является исключением из этого правила
Другой стороной вопроса является то, что может ли 32-битная система каким-либо образом запустить 64-разрядное программное обеспечение. Ведь, некоторые программы выпускаются только в 64-битных версиях (не обязательно из-за требования к ресурсам системы, например, разработчик не предусмотрел 32-разрядную версию). И если такое возможно, то какие должны при этом соблюдаться условия.
Следуя ранее описанному правилу, можно ожидать, что вы не сможете запустить 64-разрядное приложение на 32-битной системе. Однако, существует одно исключение под названием виртуализация.
Виртуализация создает виртуальную систему в рамках текущей операционной системы. Виртуализация может быть аппаратной или программной. Лучше, если виртуальная машина создается на аппаратном уровне, так как будет обеспечен прямой доступ к устройствам. Созданная виртуальная система даже не будет подозревать о том, что есть другая система, на которой она выполняется. Так что, 64-разрядная операционная система сможет использовать 64-разрядное оборудование, даже не подозревая, что рядом с ней находится 32-битная система.
Так что, если выполняется условие, что виртуальная машина создана и изолирована приложениями для виртуализации, то из основного правила можно «исключить» текущую операционную систему (она будет помечена серым цветом в таблицах ниже). И применить общее правило трех слоев.
В таблицах 3 и 4 представлены результаты.
Таблица 3 — Совместимость при 32-битном процессоре и виртуализации | ||||
Процессор (CPU) | 32-бита | 32-бита | 32-бита | 32-бита |
Основная операционная система | 32-бита | 32-бита | 32-бита | 32-бита |
Виртуальная операционная система | 32-бита | 32-бита | 64-бита | 64-бита |
Приложение | 32-бита | 64-бита | 32-бита | 64-бита |
Да | Нет | Нет | Нет |
Таблица 4 — Совместимость при 64-битном процессоре и виртуализации | ||||
Процессор (CPU) | 64-бита | 64-бита | 64-бита | 64-бита |
Основная операционная система | 32/64-бита | 32/64-бита | 32/64-бита | 32/64-бита |
Виртуальная операционная система | 64-бита | 64-бита | 32-бита | 32-бита |
Приложение | 64-бита | 32-бита | 32-бита | 64-бита |
Да | Да | Да | Нет |
Примечание: Прежде, чем спешить пытаться запускать 64-разрядные приложения в виртуальной машине, вам необходимо убедиться, что BIOS вашего компьютера поддерживает аппаратную виртуализацию. Так как без прямого доступа к аппаратным устройствам, вы не сможете запустить 64-битную систему на 32-битной системе, даже если процессор 64-разрядный.
Эмуляция 64-битного процессора не вариант
Ранее рассмотренные конфигурации предполагали, что все программное обеспечение использует только родной набор инструкций процессора. А ведь, запуск 64-битных приложений на 32-битных процессорах не возможен только потому, что 64-битные инструкции не выполнятся на 32-битных процессорах. Так что, если бы можно было эмулировать 64-битный процессор, используя 32-разрядное ПО?
Теоретически это возможно, но практически невозможно эмулировать 64-битный процессор на 32-разрядном процессоре. Даже если у вас получится создать и запустить 64-битный эмулятор, то вы столкнетесь с огромными проблемами производительности. Перехват и выполнение эмулятором 64-битных команд на 32-битах будет очень медленным. Еще одной проблемой будет использование оперативной памяти. Даже если у вас получится корректно обрабатывать указатели 64-битного адресного пространства в 32-битном, то при превышении лимита памяти, вам придется использовать жесткий диск, как замену. Вы когда-нибудь наблюдали, что происходит с Windows, когда физическая память кончается и используется файл подкачки? А теперь представьте, что будет когда, кроме медленной эмуляции инструкций процессора, эмулятору придется использовать жесткий диск. Такой системой будет невозможно пользоваться.
Примечание: Кроме того, необходимо понимать, что x86 (32-битные) процессоры, не в состоянии полностью поддерживать набор команд x64 (64-бит). Поэтому такой эмулятор будет только программным, а это практически означает построение процессора заново. Хоть, это и возможно, но не существует таких задач, которые бы оправдали затраченное время и силы на создание такого эмулятора, а так же серьезное снижение в производительности.
Ответы на часто задаваемые вопросы о 32-битных и 64-битных системах
Сноска: данный раздел содержит ответы на распространенные вопросы. Если вы внимательно читали предыдущий раздел, то вполне можете самостоятельно ответить на часть из них.
Запустится ли 32-разрядная программа на 64-битном процессоре в 64-битной системе?
Да, запустится. 64-битные системы обратно совместимы с их 32-разрядными аналогами.
Могут ли 64-разрядные приложения содержать 32-разрядный код?
Да, 64-битные приложения могут использовать 32-битный код, за исключением случая «инъекций» (см. Поддержка 32-битных приложений в 64-разрядной версии Windows).
Точно так же 32-битное программное обеспечение (как правило, очень старые программы) могут содержать некоторый 16-битный код. Как правило, такие программ будут выполняться с ошибками на 64-битной ОС.
Можно ли запустить 16-разрядное приложение или код на 64-битных системах?
Нет, как это уже говорилось, 16-битный код не запустится на 64-битной ОС потому, что обратная совместимость предусмотрена только для 32-бит. Это одна из причин, почему некоторые 32-разрядные приложения не будут выполняться на 64-битных операционных системах.
Можно ли запустить 64-разрядную виртуальную машину на 32-битной ОС с 64-битным процессором?
Да. Все зависит от уровня виртуализации. С программной виртуализации это вряд ли получится. Даже если у вас получится запустить систему, то все будет очень медленным. Единственный полноценный способ — это аппаратная виртуализация, но ее должен поддерживать BIOS вашего компьютера.
Ответы на часто задаваемые вопросы о 32- и 64-битных ОС Windows
Сноска: данный раздел содержит ответы на распространенные вопросы. Если вы внимательно читали предыдущий раздел, то вполне можете самостоятельно ответить на часть из них.
Могу ли я запустить Windows 2000 и Windows XP на 64-битных процессорах, а также использовать старое программное обеспечение?
Да, 32-разрядная операционная система будет успешно стартовать на 64-битных процессорах. И вы так же сможете запускать старые программы на 64-битных ОС.
Как узнать, является ли система 64-разрядной?
Для того, чтобы узнать, какая у вас установлена операционная система, вы можете использовать ЧаВО Microsoft, а так же специальную программу Gibson Research Corporation (GRC). Последняя покажет вам не только информацию о разрядности, но и о поддержки компьютером аппаратной виртуализации.
Подходят ли старые драйверы устройств для ОС Windows 64-бит?
Нет, 32-разрядные драйверы нельзя использовать в Windows 64. Это происходит потому, что подсистема Wow64, которая позволяет запускать 32-разрядные приложения в Windows 64, не является частью ядра системы. Более подробно смотрите в обзоре Поддержка 32-битных приложений в 64-разрядной версии Windows.
Можно ли перенести 32-битную систему на 64-разрядную Windows?
Как такового, Microsoft не предоставляет никакого механизма. Поэтому вам придется самостоятельно переносить данные с одной системы на другую, а так же заново установливать все программы.
Как альтернативный вариант, вы можете использовать мультизагрузку или виртуализацию.
Как узнать, приложение является 32- или 64-битным?
Существует несколько базовых признаков, по которым можно узнать разрядность приложения, но они не являются окончательными.
- Windows устанавливает программы в эти каталоги на системном диске:
- ‘\Program Files’ для 64-битных программ
- ‘\Program Files (x86)’ для 32-битных программ
- В диспетчере задач, 32-битные процессы, как правило, имеют приставку «*32», а 64-разрядные нет
Причиной того, что эти показатели нельзя использовать как достоверный источник, является то, каким образом Windows устанавливает 64-битное приложение. Обычно, 64-битный инсталлятор устанавливает 64-разрядные приложения или смесь из 32- и 64-битных компонентов. Но, иногда, инсталлятор может устанавливать только 32-разрядные компоненты.
Кроме того, определение компонента происходит по настройкам реестра, а не по настройкам инсталлятора. По умолчанию, Windows предполагает, что все компоненты являются 32-разрядными, если не указано иное. Это означает, что если 64-битный компонент, во время установки, не был помечен, как 64-разрядный, то он будет установлен в папку для 32-битных приложений и будет использовать ключи реестра для 32-битных приложений. Тем не менее, процесс будет выполняться как 64-битный.
Поэтому лучше всего использовать одно из следующих решений:
- Запустите программу для аудита системы. Например, из обзора Лучшие бесплатные программы для сбора информации о компьютере (системе).
- Вы можете использовать программу PEStudio. Прежде всего, это инструмент для анализа безопасности программы. Но, он так же позволяет узнать достаточно много технической информации, включая разрядность приложений.
- Если вам необходимо более подробно узнать об используемых программой модулей, то вы можете использовать Dependency Walker, который является частью средств разработки Microfoft, таких как Visual Studio.
- Windows Software Development Kit (SDK) содержит утилиту под названием DumpBin, которую так же можно использовать для определения разрядности приложения. Для этого необходимо запустить следующую команду в консольной строке, и после строки «FILE HEADER VALUES» посмотреть название заголовка: machine (x64) — 64-битная программа, machine (x86) — 32-битная программа
- dumpbin /headers «путь к программе»
- Вы так же можете использовать такие инструменты, как Microsoft Proccess Explorer (см. диспетчеры задач). Они предоставляют гораздо больше информации, нежели обычный диспетчер задач Windows. Узнать разрядность программы вы можете из свойств процесса.
Каковы различия между 32- и 64-битными версиями Windows?
Все основные физические и логические различия между версиями различных версий Windows представлены в таблице 5 (находится ниже). Так же таблица наглядно показывает тот путь улучшений, который прошла Windows, и что Windows еще нужно пройти долгий путь прежде, чем она сможет исчерпать возможности 64-разрядных процессоров.
Многие из ограничений 64-разрядных версий Windows являются ограничением системы, а не ограничением процессоров. Количество физических процессоров остается неизменным, в основном из-за того, что это прерогатива Windows Server.
Тем не менее, аппаратные устройства так же имеют ограничения. Например, в то время как 64-битные AMD и Intel процессоры используют 64-битные указатели памяти, поддерживающие их чипсеты используют только 52-битный физический адрес (4 петабайт) и 48-разрядный адрес виртуальной памяти (256 терабайт). В настоящее время, это более чем достаточно. Windows 7 64-бит поддерживает только 192 ГБ физической памяти и 16 терабайт (44-бит) виртуальной памяти.
Таблица 5: Физические и логические ограничения версий Windows, Цифры в скобках указывают расширенные настройки, которые не установлены по умолчанию и требуют наличия совместимого оборудования |
||||||
Версия: | XP | Vista | 7 | |||
Разрядность: | 32 | 64 | 32 | 64 | 32 | 64 |
Система: | ||||||
Физические процессоры | 2 | 2 | 2 | 2 | 2 | 2 |
Логические процессоры | 32 | 64 | 32 | 64 | 32 | 256 |
Системный кэш | 1 ГБ | 1,024 ГБ | 1 (2) ГБ | 1,024 ГБ | 1 (2) ГБ | 1,024 ГБ |
Физическая память | 4 ГБ | 128 ГБ | 4 ГБ | 128 ГБ | 4 ГБ | 192 ГБ |
Виртуальная память | 4 ГБ | 16,384 ГБ | 4 ГБ | 16,384 Гб | 4 ГБ | 16,384 Гб |
Ядро | 1 (2) ГБ | 8 ГБ | 2 ГБ | 8 ГБ | 2 ГБ | 8 ГБ |
Пользовательские процессы: | ||||||
Физическая память | 2 (3) ГБ | 2 (4) ГБ | 2 (3) ГБ | 8 ГБ | 2 (4) ГБ | 8 ГБ |
Виртуальная память | 2 (3) ГБ | 2 (8,192) ГБ | 2 (3) ГБ | 2 (8,192) ГБ | 2 (4) ГБ | 2 (8,192) ГБ |
Примечание: В таблице умышленно не использовалась аббревиатура 1 ТБ (1024 Гб), что бы проиллюстрировать динамику.
Примечание: Из рассмотрения так же была исключена первая 64-битная версия Windows XP (2002), поскольку она имеет другую архитектуру. Система использовала Intel Itanium (IA-64) процессоры, которые имели x86 процессор для совместимости. В последствии он был заменен 64-битной архитектурой AMD (x86-x64), которая расширила набор команд x86 и была так хороша, что была лицензирована Intel и другими производителями. Эта архитектура до сих пор является наиболее распространенной.
Можно ли выделить больше памяти для программы/процесса в 32-разрядном Windows, как показано в таблице 5?
Да, можно. И вот пример.
Если вы используете MySQL на Windows, то вы можете использовать Address Windowing Extensions (AWE), которое поддерживается MySql. AWE увеличивает максимальный размер памяти пользовательского процесса от 2 ГБ до 3 ГБ (см. таблицу 5). Это позволит MySQL использовать на 50% больше памяти.
Однако помните, что это применимо не на всех версиях 32-битной Windows, и что необходимо перекомпилировать MySQL.
Можно ли выделить более 4 Гб оперативной памяти в 32-битной Windows?
Вы можете использовать Physical Address Extension (PAE) для расширения поддерживаемого объема оперативной памяти. PAE увеличивает размер адреса с 32 бит до 36 бит, что позволяет использовать порядка 64 Гб.
PAE настраивается в BIOS-е вашего компьютера, так что его можно применять для любых операционных систем, включая Linux и Apple OS X.
32-битная Windows использует PAE, но имеет внутреннее ограничение на 4 ГБ. Существуют утилиты, которые позволяют убрать этот предел, но их стоит применять с крайней осторожностью и только в безвыходных ситуациях.
Теперь, вы знаете о 32-битах и 64-битах, а так же об их совместимости и особенностях использования.
Рубрики:
- пособие
- система
☕ Понравился обзор? Поделитесь с друзьями!
- Поддержка 32-битных приложений в 64-разрядной версии Windows
- Устройство UAC Windows 7
Добавить комментарий / отзыв
16-разрядные компьютеры
Этот сайт был разработан с помощью конструктора веб-сайтов. Создайте свой веб-сайт сегодня. Начните сейчас
16 биттеров середины восьмидесятых
К 1985 году 8-битный микропроцессор уже устарел на несколько лет. Motorola выпустила свой прекрасно спроектированный 68000 еще в 1979 году, Intel представила более консервативный 8086 годом ранее, а к 1985 году британцы даже подготовили к запуску первый процессор ARM. Рынок 8-битных домашних компьютеров закончился так же внезапно, как и мир бизнес-вычислений шин CP/M и S-100. В мире бизнес-вычислений последовал (на первый взгляд) унылый период стандартизации вокруг IBM PC, действительно некачественной аппаратной конструкции, которая, тем не менее, установила стандарт, из которого развилось большинство современных ПК. IBM PC, возможно, был печальной отправной точкой для этой стандартизации, но это было продиктовано доверием к IBM как к «большому синему» мастеру вычислений. В десятилетие, последовавшее за его введением в 1981, бизнес-вычисления представили миру не более чем ту же командную строку MS-DOS, выполняемую на все более быстром оборудовании. Только в середине 90-х стандартные ПК догнали гораздо более инновационные разработки в других местах 16-битной компьютерной вселенной и в значительной степени затмили оставшихся противников. Но в этот период, примерно с 1985 по 1993 год, появилось последнее поколение нестандартных, «самостоятельных» компьютеров.
Вернемся к PC/XT 286: хотя цена была ниже, чем у PC/AT, он был немного быстрее, чем AT, потому что ему не требовались состояния ожидания для его ОЗУ. Отныне IBM нужно будет конкурировать по производительности — что-то новое для старого олигополиста вычислений на мейнфреймах. Тем не менее, у PC/XT 286 есть несколько плюсов: он оснащен прекрасной клавиатурой IBM, работающей по щелчку, он, конечно же, имеет прочную конструкцию, и если вы наполовину закроете глаза, вы поймете, что это машина, которую IBM должна была представить за полвека. раньше для начала.
IBM PC-XT 286
Эта машина, также известная как 5162, была представлена на целых пять лет позже оригинального IBM PC и является первым IBM PC, который уважающий себя коллекционер может без смущения показать. Машину лучше всего представить, объяснив, почему первые IBM PC и PC/AT были такими ужасными.
- IBM PC был разработан в спешке, и хотя 8086 был правильным 16-разрядным процессором, IBM решила использовать его более дешевого брата 8088. Он работал как 16-битный процессор внутри, но имел только 8-битный путь данных во внешний мир, теряя большую часть преимущества скорости 16-битной вычислительной мощности. 8088 позволял программному обеспечению мыслить 16-битными терминами, но был настоящим псом по производительности. У правильно спроектированного компьютера Z80 CP/M не было проблем с первыми IBM PC. Компьютер 68000 легко обошел 8088.
- Затем, в 1984 году, IBM использовала новый 80286 в своем ПК/АТ. Неудобно, но правильный 80286 был близок к вычислительной мощности некоторых дорогих миникомпьютеров IBM — и, таким образом, наступил первый момент в истории микрокомпьютеров, когда маркетинг посчитал машину слишком быстрой. AT получил уменьшенную тактовую частоту до 6 МГц и использовал 1 состояние ожидания, что позволило снизить некоторые производственные затраты.
Apple Macintosh Plus
Разрабатываемый в течение многих лет, первый Mac 128K был наконец представлен 19 января.84. На компьютерном рынке еще никогда не происходило более серьезного изменения парадигмы. Это был первый массовый компьютер, который представил публике окна, мыши и графический интерфейс. Возможно, он многое позаимствовал у исследовательского центра Xerox PARC и его Alto 1973 года; ему предшествовала и Лиза; но, тем не менее, именно Mac принес эти концепции домой.
У него был быстрый процессор 68000, но остальные аппаратные характеристики не впечатляли так сильно, как его концепция. Скудные 128 КБ ОЗУ подорвали его потенциал и довольно быстро сделали машину устаревшей. О, и наличие мыши не означает, что вам не нужны клавиши управления курсором. Впрочем, это легко сказать задним числом. В 1984, простота сделала его доступным (доступным для Apple в производстве, но не обязательно доступным для вас при покупке).
Я выбрал Macintosh Plus для своей коллекции. Внешне он идентичен оригинальному Mac 128, но предлагает 1-4 МБ оперативной памяти и приличный интерфейс SCSI для жесткого диска. Загрузите его с диска Mac System 2.0 1984 года, и вы поймете, насколько радикальным был оригинальный Mac: полная ОС с графическим интерфейсом, содержащая 127 КБ кода на диске, плюс 64 КБ ПЗУ. 70 КБ потребовалось для хранения MacWrite, более чем приличного текстового процессора.
По-видимому, это все, что нужно для создания удобного и производительного микрокомпьютера. Так что же делают остальные 4 194 304 килобайта на вашем ПК с Windows? Жесткий код был тем, чем был весь первый Mac — это очень заметно сейчас, когда исходный код QuickDraw обнародован. После этого загрузите Mac Plus с System 6 (1988-90), и вы увидите, как этот оригинальный Mac превратился в гладкую, сложную вычислительную среду, которая может потреблять до 1-4 МБ ОЗУ, но не менее удивительно, учитывая все почтовые индексы. плавно на 8Mhz 68000.
Атари СТ
Когда вышла Atari ST, она была потрясающей машиной. У него была очень простая аппаратная конструкция. Что вы получили, так это мощный процессор 68000, много оперативной памяти, великолепно четкий черно-белый монитор и больше ничего. Благодаря своей простоте он является полной противоположностью Amiga, другого замечательного домашнего компьютера с процессором 68000. Amiga добавила сложную многозадачную ОС, в то время как ST имеет производную от CP / M и простой оконный интерфейс GEM. Для меня ST является победителем. Простота работает…
Первоначально я купил Atari 1040 ST в 1987 году, но теперь в моей коллекции есть Atari Mega ST, которую я выбрал после того, как первая ST умерла из-за лишнего рабочего дня. Mega ST почти такой же по характеристикам. Он только добавляет графический чип (блиттер), который вообще ничего не делает. Но Mega ST имеет отличную клавиатуру, выглядит «действительно профессионально» и является любимой машиной многих энтузиастов ST. Я добавил жесткий диск SCSI, который является отдельной коробкой. Философия дизайна Mega ST заключалась в том, чтобы размещать периферийные устройства в корпусах одинакового размера, как компоненты Hi-Fi. Неплохая идея.
Амига 1000
Когда эта машина появилась на обложке Byte в 1985 году, это взорвало мне мозг. Когда он вышел, это было далеко за пределами досягаемости. Кроме того, у более дешевой Atari ST было то, чего очень не хватало Amiga: идеально четкий (хотя и черно-белый) монитор. Так продолжалось до 2001 года, пока я не купил Amiga 1000, о которой я когда-то мечтал.
Мне больно признавать, что Amiga намного превосходит Atari ST благодаря своим графическим чипам и AmigaOS, родословная которой достойна поиска в Google. Первоначальная Amiga 1000, тем не менее, страдала от чрезмерного растяжения — цветному монитору не хватало четкости Mac и ST, что делало его больше похожим на домашний компьютер (содрогание). ОС была ошеломляющей, но по-настоящему стала самостоятельной только на более поздних, более мощных машинах. A2000 был разработан немецкими офисами Commodore, и он демонстрирует огромный отход от A1000 в философии внешнего дизайна. Это не потребительский аппарат, а хакерская машина. Более поздние Amiga 3000 и 4000 позволили AmigaOS по-настоящему засиять… но для меня 1000 — это безответная любовь моей юности, поэтому ей есть место в моей коллекции.
Apple Macintosh Quadra 700
Оригинальный Mac 1984 года — очень похожий на первую Amiga — был потрясающим нововведением, но ему не хватало мощности, чтобы действительно выполнить свое обещание. Это изменилось с появлением Mac Plus и жесткого диска. Но кто мог себе это позволить? Несмотря на мою неприязнь к «амбициозной ценовой политике» Apple, я был большим поклонником оригинальных («68k») компьютеров Mac, но все, что я мог получить в студенческие годы, — это Atari ST. Тем не менее вскоре эмулятор Mac под названием Spectre смог превратить ST в полезный клон Mac, и это открыло для меня мир Macintosh. Программное обеспечение Mac было таким крутым, таким гладким. .. Я стал зарегистрированным разработчиком Apple, все еще используя эмулятор Atari Mac, и в университете я зарабатывал таким образом деньги. Как жаль, что отладчик Think C не работал на эмуляторе… Представьте себе, что вы пишете полноценные приложения для Mac и никогда не можете использовать отладчик!
Дефицит делает людей голодными. На протяжении многих лет у меня было много компьютеров Mac — долгое время подержанные Mac были дешевыми как грязь. После обрезки моей коллекции в 2004 году и некоторого неизбежного повторного роста, у меня теперь есть 7 или около того. Фаворитом является Quadra 700. Он выглядит как оригинальный Mac II, который у меня когда-то был, но с 68040 это один из самых мощных 68k Mac. Эти более поздние 68-тысячные Mac демонстрируют, где его конкуренты потеряли сюжет. Apple поддерживала невероятно быстрый темп инноваций на протяжении всего конца 80-х, за которым Amiga (и тем более ST) просто не поспевала.
Значение Macintosh в конце 80-х невозможно переоценить. В течение многих лет пропасть между унылыми командными строками MS-DOS и гладким миром Mac была огромной. Трудно объяснить, насколько далеко вперед ушли Маки в конце 80-х, начале 90-х. Любой другой компьютер той эпохи показался бы современному пользователю ПК возвратом в каменный век. Но он чувствовал бы себя как дома с Mac — возможно, просто удивляясь, почему его веб-браузер работает так медленно.
Эпилог
Мир, совместимый с ПК, медленно догоняет инновационные 16-битные процессоры. Примерно в то время, когда в 1992 году была представлена Windows 3.1, уже было ясно, что стандартные бизнес-машины больше не отстают в аппаратном отношении. Мощь Intel в области НИОКР была слишком велика для Motorola, и последние поколения ее линейки 680×0 просто не могли за ней угнаться. Atari ST умерла от забвения задолго до этого, Amiga постигла та же участь, и хотя Apple все еще была далеко впереди с точки зрения «пользовательского опыта», в 1992 она допустила две стратегические ошибки. С аппаратной стороны ошибкой (оглядываясь назад) был переход от Motorola 680×0 к процессорам Power PC, изначально разработанным альянсом Apple, Motorola и IBM: даже вместе они не могли идти в ногу с Intel. Более важным было самоуспокоенность Apple в обновлении своей MacOS. В 1990 году он все еще был так же красив снаружи, как и всегда, но базовая архитектура устарела. Он использовал совместную многозадачность, чтобы назвать только один недостаток. А с появлением Windows NT в 1993, Apple оказалась в авангарде разработки операционных систем. Apple потребовалось до 2001 года, чтобы придумать OSX…
8.2 16-БИТНОЕ ПРОТИВ 32-БИТНОГО ОБОРУДОВАНИЯ
Stack Computers: 8.2 16-БИТНОЕ ПРОТИВ 32-БИТНОГО ОБОРУДОВАНИЯStack Computers : новая волна © Copyright 1989, Филип Купман, Все права защищены.
Глава 8. Приложения
Фундаментальное решение о том, какой процессор стека выбрать для конкретного приложения является размер элементов данных процессора: 16 бит или 32 бита. Выбор между 16- и 32-битными процессорами обусловлен факторы стоимости, размера и производительности.
8.2.1 16-битное аппаратное обеспечение часто лучше всего
16-разрядные процессоры стекаобычно имеют более низкую стоимость, чем 32-разрядные процессоры. Их внутренние пути передачи данных уже, поэтому они используют меньше транзисторов и стоят меньше. меньше производить. Им нужны только 16-битные пути к внешней памяти, поэтому они имеют вдвое меньше контактов данных шины памяти, чем 32-разрядные процессоры. Стоимость системы также ниже, так как в минимальной конфигурации 16-битный процессор должен иметь только вдвое меньше микросхем памяти, чем у 32-битного процессора для одного банка Память.
16-разрядные чипытакже имеют достаточный объем кремниевой области, доступной для специальные функции, такие как аппаратные множители, встроенная память программ и периферийные интерфейсы. Тенденция к полузаказным 16-битным стековым процессорам такие как RTX 2000, чтобы быть полными системами на кристалле, включая ввод-вывод периферийные устройства и программная память для встроенных приложений.
16-разрядные процессоры всегда следует оценивать для приложения, а затем отклоняется в пользу 32-битных процессоров только в том случае, если есть явная выгода для сдача.
8.2.2 Иногда требуется 32-разрядное оборудование
Большинство традиционных приложений управления в реальном времени хорошо обслуживаются 16-разрядными процессоры. Они обеспечивают высокую скорость обработки в небольшой системе как минимум. Стоимость. Конечно, одна из причин того, что традиционные приложения хорошо обслуживаемых 16-разрядными процессорами, заключается в том, что способные 32-разрядные процессоры не широко доступны в течение очень долгого времени. По мере появления более производительных 32-разрядных процессоров более широкое использование, будут обнаружены новые области применения, чтобы поместить их в хорошее применение.
32-битные процессоры стека должны использоваться вместо 16-битных процессоров только в случаях, когда приложение требует высокой эффективности на одном или нескольких из следующее: 32-битные целочисленные вычисления, доступ к большим объемам памяти или арифметика с плавающей запятой.
32-битные целочисленные вычисления, очевидно, хорошо подходят для 32-битных вычислений. процессор. Случаи, когда требуются 32-битные целые числа, включают графику и работа с большими структурами данных. В то время как 16-битный процессор может имитировать 32-битная арифметика с использованием операндов двойной точности, 32-битные процессоры намного более эффективным.
В то время как 16-разрядные процессоры могут использовать сегментные регистры для доступа к более чем 64 КБ элементы памяти, этот метод становится неудобным и медленным, если его нужно использовать часто. Программа, которая должна постоянно изменять сегментный регистр, чтобы структуры данных доступа (особенно отдельные структуры данных, которые больше, чем 64 КБ) может тратить значительное количество времени на вычисление значений сегментов. Еще хуже, поскольку адреса, которыми нужно манипулировать при вычислении данных записи, ширина которых превышает 16 бит, вычисление адресов также медленнее из-за всей задействованной математики с двойной точностью. 32-битный процессор может предложить линейное 32-битное адресное пространство с сопутствующим быстрым адресные вычисления на 32-битном пути данных.
Для вычислений с плавающей запятой также требуется 32-битный процессор. эффективность. 16-битные процессоры тратят значительное количество времени на манипулирование элементы стека при работе с числами с плавающей запятой, тогда как 32-битные процессоры естественным образом подходят к размеру элементов данных. Есть много случаев, когда масштабированная целочисленная арифметика более уместна, чем числа с плавающей запятой для увеличения скорости на некоторых процессорах. В этих случаях 16-битного процессора может быть достаточно. Однако часто приходится использовать математику с плавающей запятой. снизить стоимость программирования проекта и поддерживать код, написанный на языки высокого уровня. Кроме того, с появлением очень быстрых вычислений с плавающей запятой оборудование для обработки данных, традиционное преимущество целочисленных операций в скорости над число операций с плавающей запятой уменьшается.
Недостатками 32-битных процессоров являются стоимость и сложность системы. Чипы 32-битных процессоров, как правило, стоят дороже, потому что в них больше транзисторов. и контакты, чем 16-битные чипы. Им также требуется 32-битная программная память. и, как правило, печатная плата большего размера, чем у 16-битных процессоров. Есть меньше места на кристалле для дополнительных функций, таких как аппаратные множители, но эти элементы будут появляться по мере того, как технология изготовления чипов станет более плотной.
СЛЕДУЮЩИЙ РАЗДЕЛ
Фил Купман — [email protected]
Что все это значит?
Гостевой пост Стива Берарди из PhotoNaturalist
В цифровой фотографии много говорят о битах:
- 12-разрядные и 14-разрядные аналого-цифровые преобразователи (АЦП)
- 8-битный цвет против 16-битного
- 32-битный и 64-битный Photoshop
Но что все это значит? Хотя большее количество бит обычно означает лучшее качество обработки, это не всегда так просто. Иногда вам действительно нужно знать всю историю, прежде чем делать выводы.
Прежде чем мы перейдем к этим конкретным примерам, которые часто встречаются в цифровой фотографии, важно понять, что такое бит.
Что такое бит?Слово «бит» происходит от двух слов: двоичного и цифрового. Каждый бит имеет два возможных значения: 1 или 0. Иногда также полезно думать о бите как о «включенном» (1) или «отключенном» (0).
Хотя один бит может хранить два возможных значения, последовательность из двух битов может хранить четыре возможных значения: 00, 01, 10 и 11. В последовательности битов важен порядок, поэтому «01» сильно отличается от «10. ”
Каждый раз, когда вы добавляете бит к последовательности, вы удваиваете количество возможных значений, поэтому, если вы переходите от двух битов к трем битам, вы переходите от четырех возможных значений к восьми возможным значениям.
В качестве примера предположим, что вы хотели сохранить что-то, что имеет 16 возможных значений. В этом случае вам потребуется 4 бита (2 x 2 x 2 x 2 = 16).
Аналого-цифровые преобразователи (АЦП): 12 бит vs. 14-битныйКаждая цифровая камера имеет аналого-цифровой преобразователь (АЦП), который преобразует аналоговый сигнал, полученный датчиком, в цифровой сигнал, который создает ваше изображение. Большинство зеркальных фотокамер в наши дни имеют либо 12-битный, либо 14-битный АЦП.
Биты в данном случае относятся к числу возможных тональных значений, которые может зафиксировать сенсор вашей камеры. Например, 12-разрядный АЦП может регистрировать 4096 возможных тональных значений для каждого пикселя. С другой стороны, 14-битный АЦП может регистрировать 16 384 тональных значения для каждого пикселя.
На первый взгляд может показаться, что 14-битный АЦП явно выигрывает: он может регистрировать на 12 000 тональных значений больше! Но эти два дополнительных бита не увеличивают динамический диапазон вашей камеры, они только добавляют больше шагов в этом диапазоне. Это как если бы вы взяли буханку хлеба и разрезали каждый ломтик пополам, чтобы сделать ломтики еще меньше. Теперь у вас может быть больше ломтиков хлеба, но размер буханки тот же!
Таким образом, вы получите немного лучшее качество изображения с 14-битным АЦП, но на самом деле это заметно только в глубоких тенях и плавных градиентах (таких, которые вы видите на фотографии заката).
Дополнительные сведения о 14-разрядных и 12-разрядных АЦП см. в следующих полезных статьях:
- Глубокие тени: 12-бит против 14-бит
- Гладкие градиенты: 12-бит против 14-бит
- Понимание динамического диапазона в цифровой фотографии
В большинстве программ постобработки у вас есть выбор между 8-битным цветом и 16-битным цветом. Биты в этом случае относятся к количеству возможных тональных значений, доступных для каждого цветового канала (красного, зеленого и синего) каждого пикселя.
Для 8-битных изображений у вас есть 256 возможных значений для красного канала, 256 значений для зеленого канала и 256 значений для синего канала. А с 16-битными изображениями у вас есть 65 536 возможных значений для каждого цветового канала.
Использование 16-битного цвета приведет к довольно большим размерам файлов, но дополнительный размер того стоит, потому что с 16-битной обработкой вы значительно снизите вероятность постеризации (как видно на фотографии ниже). Рекомендуется использовать 16-битный цвет, даже если вы изначально снимали в формате JPEG (который является 8-битным), потому что дополнительные биты помогут уменьшить ошибки округления при выполнении общих задач постобработки, таких как кривые или уровни.
Дополнительные сведения о 8-битном и 16-битном цвете см. в следующих полезных статьях:
- Понимание битовой глубины
- Что такое постеризация изображения?
Некоторые приложения постобработки, такие как Adobe Photoshop, предлагают 32-разрядные версии и 64-разрядные версии. Биты в этом случае относятся к числу возможных адресов памяти. С 32-разрядной версией вы можете использовать до 4 ГБ физической памяти, а с 64-разрядной версией теоретически можно использовать до 17,2 млрд ГБ памяти (хотя этот объем обычно сильно ограничен операционной системой).
Существует распространенное заблуждение, что 64-битная версия Photoshop всегда быстрее, но на самом деле, чтобы воспользоваться ускорением (которое минимально), должны произойти три вещи:
- Требуется более 4 ГБ физической памяти
- Вам необходимо работать с очень большими изображениями (не менее 800 МБ)
- У вас должна быть 64-разрядная операционная система (например, Vista x64 или Mac OS 10.6)
Вы можете подумать, что 800 МБ больше, чем вы когда-либо работали, но файлы могут довольно быстро увеличиваться, если вы создаете панорамное изображение или работаете с несколькими слоями изображений для смешивания экспозиций.
Даже если вы соответствуете всем трем вышеперечисленным условиям, все равно есть шанс, что вы вообще не заметите никакого ускорения, в зависимости от операций, которые вы выполняете с изображением. Также имейте в виду, что многие сторонние плагины не работают с 64-битной версией Photoshop.
Для получения более подробной информации о 32-разрядных версиях Vs. 64-битный Photoshop, ознакомьтесь с этими информативными статьями:
- Photoshop CS4: 32-битные и 64-битные тесты
- Photoshop CS5 64-бит против Photoshop CS4 32-бит Тесты
- Руководство Lifehacker по сравнению 64-битных и 32-битных операционных систем
Главное, что следует усвоить из этого поста, это то, что не все биты создаются одинаково. То, что что-то имеет в два раза больше битов, не означает, что оно автоматически становится в два раза быстрее или в два раза лучше по качеству. Прежде чем делать какие-либо выводы о 16-битных и 32-битных / и т. Д., Вы действительно должны понять историю использования этих битов.
Об авторе: Стив Берарди — натуралист, фотограф и ученый-компьютерщик.
Обычно его можно встретить в походах по красивым горам и пустыням Южной Калифорнии. Прочтите больше его статей о фотографии природы по адресу PhotoNaturalist и подпишитесь на него в Twitter .
Что такое битовая глубина звука? Объяснение 16-битного, 24-битного и 32-битного числа с плавающей запятой
В этом уроке мы разберем разрядность. Битовая глубина является ключевым компонентом цифрового звука. Вы, вероятно, замечали список доступных битовых глубин, когда создавали новую сессию или восстанавливали свою музыку. В этом уроке мы разберем, что такое битовая глубина. Мы также рассмотрим ключевые разрядности, включая 16-битные, 24-битные и 32-битные числа с плавающей запятой, чтобы узнать, какую разрядность использовать и когда.
Прежде чем мы двинемся дальше, если вы хотите создавать лучшую музыку в своей домашней студии, обязательно загрузите бесплатный комплект для домашней студии здесь (шпаргалка по эквалайзеру, шпаргалка по компрессии и руководство по вокалу).
Что такое битовая глубина звука
Для цифровой записи звука ваш аналого-цифровой преобразователь каждую секунду захватывает тысячи выборок аналогового сигнала. Каждому образцу присваивается значение, которое используется для представления амплитуды этого образца. Битовая глубина определяет количество значений, доступных в каждом образце. В результате битовая глубина определяет динамический диапазон цифрового звука. Давайте посмотрим, как он это делает…
Шум квантования
При дискретизации аналогового сигнала его амплитуда согласуется с ближайшим из доступных цифровых значений. Этот процесс называется квантованием. Однако независимо от того, сколько значений доступно, амплитуда аналогового сигнала не всегда будет полностью соответствовать доступному значению. Иногда амплитуда сигнала будет находиться между двумя значениями. Это потому, что аналоговый сигнал имеет бесконечное разрешение. Но мы вписываем его в цифровую систему с конечным числом значений.
Если амплитуда аналогового сигнала не полностью совпадает с доступным значением, амплитуда аналогового сигнала должна быть округлена до ближайшего доступного значения. Это называется ошибкой квантования. Эти ошибки квантования вносят шум квантования в сигнал. Шум квантования слышен как белый шум низкого уровня. Уровень шума квантования мы называем уровнем шума. Термин «минимальный уровень шума» относится к сигналу, который существует в аудиосистеме в результате комбинации любого собственного шума или нежелательного звука.
Важно отметить, что чем выше битовая глубина, тем ниже уровень шума. Таким образом, более высокая битовая глубина обеспечивает больший динамический диапазон. Динамический диапазон относится к разнице между самыми громкими и самыми тихими звуками, которые могут быть захвачены и воспроизведены. Верхним пределом динамического диапазона является 0dBFS, выше которого любой сигнал будет обрезаться. На нижнем пределе динамического диапазона находится уровень шума. Любой сигнал тише, чем уровень шума, будет маскироваться уровнем шума.
16-битная и 24-битная
Наиболее распространенные битовые глубины для записи и воспроизведения звука — 16-битная и 24-битная. 16 бит предоставляет каждому образцу 65 536 возможных значений амплитуды. 24-битная предоставляет каждой выборке 16 777 216 возможных значений амплитуды. Таким образом, 16 бит обеспечивает динамический диапазон 96 дБ между уровнем шума и 0 дБ полной шкалы. 24 бит обеспечивает динамический диапазон 144 дБ между уровнем шума и 0 дБ полной шкалы.
Как разрядность влияет на качество звука?
Существует некоторое заблуждение, что более высокая битовая глубина приводит к лучшему качеству звука или более высокой точности звука. Люди задают вопрос: «24-битное звучание лучше, чем 16-битное»? Эта путаница, вероятно, возникает из-за того, что более высокая битовая глубина называется более высоким «разрешением». Это заставляет задуматься о разрешении цифровых изображений, у которого чем выше разрешение, тем четче и детальнее картинка. Но это не так.
Здесь речь идет о разрешении информации. Таким образом, 24-битный аудиофайл не будет звучать более детально и четко, чем 16-битный аудиофайл. Вместо этого, как мы уже установили, это просто означает, что более высокая битовая глубина будет иметь более низкий уровень шума. На самом деле, даже при преобразовании из высокой разрядности в меньшую, при условии, что вы используете дизеринг, единственная разница должна заключаться в том, что версия с меньшей разрядностью имеет более высокий уровень шума. Это связано с тем, что дизеринг исправит возникновение искажения усечения при преобразовании в более низкую разрядность.
Какую разрядность следует использовать для записи?
Когда дело доходит до записи, даже в 16-битном режиме, минимальный уровень шума очень низок. Таким образом, вы можете записывать в 16-битном формате и при этом иметь приличный динамический диапазон. Однако более распространенной практикой и чем-то вроде стандарта является запись в 24-битном формате. Просто потому, что запись в 24-битном формате дает вам больший динамический диапазон для работы. Он предлагает вам возможность записи на более консервативных уровнях, чтобы не приближаться к уровню отсечения, но при этом оставаться значительно выше уровня шума.
Недавно на рынке появилось несколько интерфейсов, которые предлагают 32-битную запись. Обратите внимание, что я говорю здесь о 32-битной фиксированной точке, а не о 32-битной плавающей запятой, к которой мы перейдем через мгновение. 32 бит предлагает 4 294 967 296 значений и динамический диапазон 192 дБ. Но действительно ли нам нужен такой большой динамический диапазон? При 24 битах у вас уже есть динамический диапазон, превышающий динамический диапазон человеческого уха. В слуховой системе человека порог слышимости составляет 0 дБ SPL, в то время как порог боли составляет около 120 дБ SPL. Таким образом, динамический диапазон в 144 дБ, предлагаемый 24-битным форматом, уже достаточно высок, чтобы улавливать звуки ниже, чем мы можем слышать, и громче, чем мы можем терпеть. Итак, 192 дБ динамического диапазона, предлагаемого 32-битной фиксированной точкой, совершенно не нужны.
Какую разрядность мне следует использовать для воспроизведения моей песни?
Итак, какую разрядность следует использовать для окончательного отскока вашей песни? Это аудиофайл, который вы загрузите дистрибьютору для выпуска в iTunes, Spotify и т. д. Ну, стандартная разрядность для этого долгое время была 16 бит. Это было связано с тем, что для записи аудиофайла на аудио компакт-диск файл должен быть 16-битным. Но многие онлайн-платформы теперь позволяют загружать файлы в 24-битном формате. Но так ли это необходимо? Что ж, даже если бы вы работали с действительно динамичным материалом, например, с классической музыкой, он все равно использовал бы не более 50–60 дБ динамического диапазона. Большинство других жанров будут использовать гораздо меньше. Таким образом, 96 дБ динамического диапазона 16 бит более чем достаточно для идеального представления динамического диапазона вашей музыки.
Что такое 32-битная плавающая точка в аудио?
Ознакомившись с основами, давайте перейдем к 32-битным числам с плавающей запятой. Вы, вероятно, видели это как один из вариантов наряду с 16-битным и 24-битным, когда вы создаете новый сеанс или восстанавливаете звук.
Во-первых, важно знать, что битовая глубина бывает двух разных форм. Первый — это «фиксированная точка», также известная как «целое число». Второй — «с плавающей запятой». До сих пор мы говорили о 16-битной, 24-битной и 32-битной битовой глубине с фиксированной запятой. В отличие от битовой глубины с фиксированной запятой, битовая глубина с плавающей запятой используется только для внутренней обработки в DAW. Они не подходят для использования в качестве разрядности вашего окончательного трека, который вы затем загрузите на цифровой дистрибьютор. Этот отскок должен иметь фиксированную битовую глубину. Таким образом, вы бы действительно отскочили до 32-битного числа с плавающей запятой только в том случае, если аудиофайл собирался импортировать в DAW.
В отличие от битовой глубины с фиксированной запятой, которая имеет потолок на уровне 0dBFS и минимальный уровень шума на определенном расстоянии ниже, 32-битное число с плавающей запятой использует свой динамический диапазон по-другому. 32-битное число с плавающей запятой имеет огромный динамический диапазон в 1528 дБ, но вместо того, чтобы иметь потолок на уровне 0 дБ полной шкалы, верхний предел динамического диапазона составляет 770 дБ выше 0 дБ полной шкалы, а нижний предел — 758 дБ ниже 0 дБ полной шкалы. Таким образом, эта система предоставляет вам возможность увеличивать и уменьшать уровни таких вещей, как ваши инструментальные каналы и вход/выход плагинов в вашей DAW, не беспокоясь ни о падении уровня шума, ни об обрезке.
32-битные файлы с плавающей запятой против 24-битных
Итак, лучше ли работать с 32-битными файлами с плавающей запятой, а не с 16- или 24-битными? Ну, вы можете создать 32-битные файлы с плавающей запятой с самого начала, если хотите. Вы делаете это, устанавливая битовую глубину вашего сеанса на 32-битное число с плавающей запятой перед записью. Таким образом, вы будете записывать звук с фиксированной битовой глубиной, на которую способен ваш интерфейс, но он будет сохранен как 32-битный файл с плавающей запятой.
Но в этом нет необходимости. И вот почему… Все современные DAW обрабатывают звук внутри с 32-битной плавающей запятой независимо от разрядности ваших аудиофайлов. Таким образом, вы получите преимущества 32-битной обработки с плавающей запятой в вашей DAW, даже если ваши аудиофайлы сами по себе не являются 32-битными файлами с плавающей запятой. Таким образом, я рекомендую вам установить сеанс на 24 бита при записи, а не на 32 бит с плавающей запятой. Вы по-прежнему получите преимущества 32-битной обработки с плавающей запятой, но не увеличите размер файла.
Возврат в 32-битном файле с плавающей запятой
У вас также есть возможность преобразовать звук в виде 32-битного файла с плавающей запятой. Как я упоминал ранее, это следует использовать только в том случае, если аудиофайл будет импортирован в DAW. Это не подходит для окончательного возврата, который вы загрузите в цифровой дистрибьютор.
Подпрыгивание 32-битных файлов с плавающей запятой дает вам преимущество, которого нет у файлов с фиксированной запятой битовой глубины. С 32-битным файлом с плавающей запятой, если файл обрезается выше 0dBFS, файл может быть импортирован в сеанс и «отсечен». Это связано с тем, что звук с пиком выше 0dBFS не был потерян. Он по-прежнему присутствует, и его можно воспроизводить без искажений, ослабив усиление клипа до уровня, при котором самые громкие пики не превышают 0dBFS.
Однако при фиксированной битовой глубине это невозможно. Если звук отскакивает до фиксированной битовой глубины и имеет место отсечение, то обрезанный звук будет потерян, а любое возникающее в результате искажение будет неразрешимым при импорте в DAW. Конечно, если вы правильно ставите усиление и не небрежно относитесь к своим уровням, то вы не должны оказаться в ситуации, когда вы что-то отскакиваете, а позже понимаете, что оно обрезано. Но 32-битное число с плавающей запятой может предложить такую подстраховку.
Дополнительным преимуществом является то, что при переходе к 32-битной разрядности с плавающей запятой сглаживание не требуется. Таким образом, если вы собираетесь отражать звук несколько раз, перемещая его от сеанса к сеансу, то 32-битное плавание дает вам возможность не применять дизеринг к аудио.
Предупреждение
Что касается 32-битной обработки с плавающей запятой, на что стоит обратить внимание, так это… Хотя у вас есть возможность с 32-битной обработкой с плавающей запятой позволить вашему звуку превысить 0dBFS в вашей DAW без клиппирования, я все же рекомендую вам лечить 0dBFS в качестве потолка. Это по двум причинам.
Во-первых, у вас могут быть старые сторонние плагины, которые вы используете, которые не работают с 32-битным числом с плавающей запятой. Таким образом, эти плагины будут обрезаться, если сигнал превысит 0dBFS.
Во-вторых, у некоторых плагинов есть «золотое пятно», которое следует учитывать. Обычно это происходит в плагинах, предназначенных для моделирования аналогового оборудования. Таким образом, вы получите различные тональные характеристики в зависимости от уровня, на котором вы отправляете сигналы в плагин. Добавление действительно высоких уровней в такие плагины вряд ли приведет к лучшему звуку, даже если они работают с 32-битным числом с плавающей запятой.
Можно ли записывать звук с 32-битной плавающей запятой?
Совсем недавно на рынке появилась пара аудиорекордеров, которые предлагают возможность записи с 32-битной плавающей запятой. Одним из таких рекордеров является Zoom F6. Это очень новое достижение в области аудиозаписи, и в настоящее время оно доступно в портативных полевых рекордерах. Будет ли эта возможность распространяться на аудиоинтерфейсы для студий звукозаписи? Время покажет.
Эти записывающие устройства объединяют несколько 32-битных преобразователей с фиксированной запятой, а затем сохраняют захваченный звук в виде 32-битного файла с плавающей запятой. Благодаря большому динамическому диапазону они дают возможность записывать, не беспокоясь о настройках усиления. Затем уровни могут быть увеличены или уменьшены по мере необходимости в постобработке.
Возможность записывать аудио, не беспокоясь об усилении, может быть очень полезной для людей, записывающих звуки с чрезвычайно высокими и/или непредсказуемыми уровнями. Возможно, от этого выиграет запись природы, неожиданно прерванная внезапным раскатом грома. Или, возможно, аудио для интервью или подкаста, где нет возможности «сделать еще один дубль», если вы обнаружите, что не правильно установили усиление. Однако для тех из нас, кто записывает музыкальные инструменты в студиях звукозаписи, будет ли это необходимо? Пока вы намеренно устанавливаете уровни усиления и записываете 24-битный звук, я не вижу, чтобы это требовалось пользователям студии звукозаписи.
Заключение
Очень много информации, которую нужно взять на вооружение. Напомним…
Битовая глубина определяет динамический диапазон цифрового звука, определяя уровень минимального шума.
Запись в формате 24 бит. Это даст вам больше возможностей для работы, чем 16 бит. Нет смысла записывать с 32-битной фиксированной точкой, поскольку 24-битной уже более чем достаточно. Также нет никакой реальной пользы в создании 32-битных файлов с плавающей запятой при записи. Это связано с тем, что ваш звук будет обрабатываться в 32-битной DAW, даже если ваши аудиофайлы имеют фиксированную битовую глубину.
Когда дело доходит до рикошетирования, единственный раз, когда вы должны прыгать на 32-битное число с плавающей запятой, это если звук будет импортирован в DAW. Это не подходит для финального отскока. Это должно иметь битовую глубину с фиксированной точкой. Преимущество перехода на 32-битное число с плавающей запятой заключается в том, что если есть какое-либо отсечение, звук может быть ослаблен при импорте в DAW и «отсечении». 32-битное число с плавающей запятой также не требует сглаживания.
Когда вы готовите свой последний трек к выпуску, выберите 16 бит. 16 бит обеспечивает более чем достаточный динамический диапазон для воспроизведения даже очень динамичной музыки. Нет смысла проигрывать финальный трек в 24-битном формате.
Какую битовую глубину вы обычно используете при записи звука и почему? Оставьте свои мысли и предложения в поле для комментариев ниже.
БЕСПЛАТНЫЕ ЗАГРУЗКИ
Получите наилучшие результаты от эквалайзера, компрессии, вокала и ударных с БЕСПЛАТНЫМ пакетом «Home Studio Bundle»
10-битные и 16-битные видеоформаты YUV — приложения Win32
- Статья
- 6 минут на чтение
В этом разделе описываются 10- и 16-битные форматы YUV, рекомендуемые для захвата, обработки и отображения видео в операционной системе Microsoft Windows. (n — 8), где n равно 10 или 16, в соответствии с разделами 7.7–7.8 и 7.11–7.12 SMPTE 274M. Прецизионные преобразования могут выполняться с помощью простых битовых сдвигов. Например, если белая точка 8-битного формата равна 235, соответствующий 10-битный формат имеет белую точку на 9.40 (235 × 4).
Описанные здесь 16-битные представления используют значения WORD с прямым порядком байтов для каждого канала. В 10-битных форматах также используется 16 бит для каждого канала, при этом младшие 6 бит равны нулю, как показано на следующей диаграмме.
Поскольку 10-битное и 16-битное представления одного и того же формата YUV имеют одинаковую структуру памяти, можно преобразовать 10-битное представление в 16-битное без потери точности. Также возможно преобразовать 16-битное представление в 10-битное представление. (Однако форматы Y416 и Y410 являются исключением из этого общего правила, поскольку они не используют одинаковую структуру памяти.) 9n) – 1, где n – количество альфа-битов. Предполагается, что альфа представляет собой линейное значение, которое применяется к каждому компоненту после того, как компонент был преобразован в его нормализованную линейную форму.
Для изображений в видеопамяти графический драйвер выбирает выравнивание поверхности в памяти. Поверхность должна быть выровнена по DWORD . То есть отдельные линии на поверхности гарантированно начинаются с 32-битной границы, хотя выравнивание может быть больше 32-битного. Начало (0,0) всегда находится в верхнем левом углу поверхности.
Для целей данной документации термин U эквивалентен Cb , а термин V эквивалентен Cr .
Коды FOURCC для 10-битного и 16-битного YUV
Коды FOURCC для описываемых здесь форматов используют следующее соглашение:
Если формат плоский, первым символом в коде FOURCC будет ‘P’. Если формат упакован, первым символом будет ‘Y’.
Второй символ в коде FOURCC определяется выборкой цветности, как показано в следующей таблице.
Выборка цветности Кодовая буква FOURCC 4:4:4 ‘4’ 4:2:2 ‘2’ 4:2:1 ‘1’ 4:2:0 ‘0’ Последние два символа в FOURCC указывают количество битов на канал: либо «16» для 16 бит, либо «10» для 10 бит.
Используя эту схему, были определены следующие коды FOURCC. В настоящее время форматы 4:2:1 для 10-битного или 16-битного YUV не определены.
FOURCC | Описание |
---|---|
P016 | Планар, 4:2:0, 16 бит. |
P010 | Планар, 4:2:0, 10 бит. |
P216 | Планар, 4:2:2, 16 бит. |
P210 | Планар, 4:2:2, 10 бит. |
Y216 | Упакованный, 4:2:2, 16 бит. |
Y210 | Упакованный, 4:2:2, 10 бит. |
Y416 | Упакованный, 4:4:4, 16 бит |
Y410 | Упакованный, 4:4:4, 10 бит. |
GUID подтипа также были определены из этих FOURCC; см. GUID подтипа видео.
Определения поверхности
В этом разделе описывается структура памяти для каждого формата. В последующих описаниях термин WORD относится к 16-битному значению с прямым порядком байтов, а термин DWORD относится к 32-битному значению с прямым порядком байтов.
Форматы 4:2:0
Определены два формата 4:2:0 с кодами FOURCC P016 и P010. Они имеют одинаковую структуру памяти, но P016 использует 16 бит на канал, а P010 использует 10 бит на канал.
P016 и P010
В этих двух форматах все выборки Y сначала появляются в памяти как массив из WORD с четным числом строк. Шаг поверхности может быть больше, чем ширина плоскости Y. За этим массивом сразу следует массив из СЛОВО s, содержащее чередующиеся выборки U и V, как показано на следующей диаграмме.
Если комбинированный массив U-V адресован как массив из DWORD с, младшее значащее слово (LSW) содержит значение U, а старшее значащее слово (MSW) содержит значение V. Шаг комбинированной плоскости U-V равен шагу плоскости Y. В плоскости U-V линий вдвое меньше, чем в плоскости Y.
Эти два формата являются предпочтительными форматами планарных пикселей 4:2:0 для более точного представления YUV. Ожидается, что они станут промежуточным требованием для ускорителей DirectX Video Acceleration (DXVA), которые поддерживают 10-битное или 16-битное видео 4:2:0.
Форматы 4:2:2
Определены четыре формата 4:2:2, два плоскостных и два упакованных. Они имеют следующие коды FOURCC:
- P216
- П210
- Y216
- Y210
P216 и P210
В этих двух планарных форматах все отсчеты Y сначала появляются в памяти как массив из WORD с четным числом строк. Шаг поверхности может быть больше, чем ширина плоскости Y. За этим массивом сразу следует массив из СЛОВО s, содержащее чередующиеся выборки U и V, как показано на следующей диаграмме.
Если комбинированный массив U-V адресован как массив из DWORD с, LSW содержит значение U, а MSW содержит значение V. Шаг комбинированной плоскости U-V равен шагу плоскости Y. Плоскость U-V имеет то же количество линий, что и плоскость Y.
Эти два формата являются предпочтительными форматами планарных пикселей 4:2:2 для более точного представления YUV. Ожидается, что они станут промежуточным требованием для ускорителей DirectX Video Acceleration (DXVA), поддерживающих 10-битное или 16-битное видео 4:2:2.
Y216 и Y210
В этих двух упакованных форматах каждая пара пикселей хранится в виде массива из четырех WORD , как показано на следующем рисунке.
Первое СЛОВО в массиве содержит первый отсчет Y в паре, второе СЛОВО содержит U отсчет, третье СЛОВО содержит второй отсчет Y, а четвертое СЛОВО содержит V образец.
Y210 идентичен Y216, за исключением того, что каждая выборка содержит только 10 бит значимых данных. Младшие 6 бит устанавливаются равными нулю, как описано ранее.
Форматы 4:4:4
Определены два формата 4:4:4 с кодами FOURCC Y410 и Y416. Оба формата упакованы.
Y410
Этот формат представляет собой упакованное 10-битное представление, включающее 2 альфа-бита. Каждый пиксель кодируется как одно DWORD со структурой памяти, показанной на следующей диаграмме.
Биты 0–9 содержат выборку U, биты 10–19 содержат выборку Y, биты 20–29 содержат выборку V, а биты 30–31 содержат значение альфа-канала. Чтобы указать, что пиксель полностью непрозрачен, приложение должно установить два альфа-бита равными 0x03.
Y416
Этот формат представляет собой упакованное 16-битное представление, включающее 16 бит альфа-канала. Каждый пиксель кодируется как пара DWORD , как показано на следующем рисунке.
Биты 0–15 содержат выборку U, биты 16–31 содержат выборку Y, биты 32–47 содержат выборку V, а биты 48–63 содержат значение альфа-канала.
Чтобы указать, что пиксель полностью непрозрачен, приложение должно установить два альфа-бита равными 0xFFFF. Этот формат предназначен в первую очередь как промежуточный формат при обработке изображений, чтобы избежать накопления ошибок.
Предпочтительные форматы YUV
В следующей таблице перечислены предпочтительные форматы YUV, включая 8-битные форматы.
Формат | Выборка цветности | Упакованный или плоский | Бит на канал |
---|---|---|---|
АЮВ | 4:4:4 | В упаковке | 8 |
Y410 | 4:4:4 | В упаковке | 10 |
Y416 | 4:4:4 | В упаковке | 16 |
АИ44 | 4:4:4 | В упаковке | На поддонах |
ЮЙ2 | 4:2:2 | В упаковке | 8 |
Y210 | 4:2:2 | В упаковке | 10 |
Y216 | 4:2:2 | В упаковке | 16 |
P210 | 4:2:2 | Планар | 10 |
Р216 | 4:2:2 | Планар | 16 |
НВ12 | 4:2:0 | Планар | 8 |
P010 | 4:2:0 | Планар | 10 |
P016 | 4:2:0 | Планар | 16 |
НВ11 | 4:1:1 | Планар | 8 |
Если объект поддерживает данную схему дискретизации битовой глубины и цветности, рекомендуется, чтобы он поддерживал соответствующие форматы YUV, перечисленные в этой таблице. (Объекты могут поддерживать дополнительные форматы, не перечисленные здесь.)
Рекомендуемые 8-битные форматы YUV для рендеринга видео
GUID подтипа видео
Типы видео носителей
Преимущества редактирования изображений в 16-битном режиме
Преимущества редактирования изображений в 16-битном режиме
0 Likes
Чем больше битов данных, тем больше оттенков серого.
В чем разница между 8-битным и 16-битным? Количество оттенков серого. 256 против 65 536, если быть точным. При большем количестве оттенков серого градация становится более плавной.
Как добраться до этих номеров? Цифровые файлы являются двоичными. 2 в 8-й степени равно 256. 2 в 16-й степени равно 65 536.
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 29853 6 = = = = = = = = = = 6 6 6 6 .
2 8 = 256
2 = 512
2 10 = 1024
2 11 = 2048
2 12 = 4096
2
2 12 = 4096
2
2 0852 13 = 8192
2 14 = 16 384
2 15 = 32 768
2 16 = 65 536
1 память для хранения всех оттенков серого в два раза больше. Это стоит того. При арифметическом увеличении размера файла вы получаете логарифмическое увеличение количества оттенков серого.
256 оттенков серого — это достаточное количество оттенков серого, чтобы достаточно хорошо работать в большинстве приложений обработки изображений. Человеческий глаз может видеть около 1000 оттенков серого. С 65 536 оттенками серого 16-битные файлы содержат на десятки тысяч оттенков серого больше, чем вы можете видеть.
Так зачем же нужны все эти дополнительные оттенки серого? Редактирование файлов для получения наилучших возможных результатов. Когда цифровой файл редактируется, он теряет некоторые оттенки серого. Если цифровой файл содержит слишком мало оттенков серого, он начинает постеризироваться. Вы можете увидеть признаки постеризации, если на гистограмме изображения видны гребни или пробелы и всплески. Прежде чем паниковать, осмотрите гладкие области изображения, чтобы убедиться в наличии видимой постеризации. Сделайте это при 100% увеличении экрана; Во многих случаях постеризация, которую вы видите на мониторе, является результатом того, что монитор не может отображать данные так гладко, как при других увеличениях экрана. 16-битные файлы содержат так много оттенков серого, что при обычном редактировании очень сложно добиться постеризации — если только вы не намеренно постеризируете их с помощью цифровой фильтрации.
16-бит не расширяет цветовую гамму; 16-битные файлы могут быть как с малым, так и с широким цветовым охватом. 16-бит рекомендуется для файлов, созданных в цветовых пространствах с широкой гаммой, таких как Pro Photo RGB, потому что шаги между тональными значениями распределяются на большее расстояние для достижения большей насыщенности и, следовательно, имеют тенденцию к более быстрой постеризации.
16-бит не расширяет динамический диапазон; он не создает более черный или более белый белый. 16-битные исходные файлы рекомендуются для расширенного динамического диапазона, поскольку HDR-изображения сильно обрабатываются при тональной компрессии и могут быть постеризованы без более высокой битовой глубины. При обработке HDR несколько 16-битных файлов с скобками объединяются в один файл с 32-битным режимом, используемым для хранения различных данных, которые они содержат, в динамическом диапазоне, который шире, чем устройство, которое их создало. Затем 32-битный файл подвергается тональной компрессии и преобразуется в 16-битный файл с улучшенным динамическим диапазоном.
За исключением 32-битных файлов, используемых для тональной компрессии HDR, файлы в Adobe Photoshop могут быть либо 8-битными, либо 16-битными.
Чтобы получить настоящие 16-битные данные, вам необходимо сгенерировать их при создании цифрового файла и сохранить при редактировании изображения. Файлы JPEG не могут содержать 16-битные данные; они приготовлены до 8-бит. Необработанные файлы могут. (Так же как и отсканированные изображения.)
Не все файлы Raw содержат настоящие 16-битные данные. В то время как многие DSLR могут генерировать только 10-битные, 12-битные или 14-битные данные, все файлы DSLR Raw содержат более 8-битных данных, которые могут быть сохранены в Photoshop только при редактировании в 16-битном режиме.
Вы можете изменить режим цифрового файла с 8-битного на 16-битный, но это не волшебным образом добавит оттенков серого к старым 8-битным данным; все это создает возможность добавления новых 16-битных данных поверх старых 8-битных данных; и удваивает размер файла.
Редактирование файлов в 16-битном режиме ограничивает некоторые функциональные возможности Photoshop; многие фильтры не работают в 16-битном режиме.
Вы можете применить фильтр к 8-битной копии 16-битного файла и перетащить отфильтрованный файл в исходный 16-битный файл в качестве слоя. Опять же, слой не будет содержать 16-битных данных, и на него могут негативно повлиять последующие правки, если они будут агрессивными. Если отредактировать минимально, результаты могут быть вполне приемлемыми.
Редактирование изображений в 16-битном режиме стоит времени и усилий. Вы будете генерировать меньше артефактов изображения во время редактирования и, таким образом, создавать более качественные файлы.
Прямо сейчас создание 16-битных файлов в основном связано с созданием наилучших 8-битных данных. (Большинство мониторов могут отображать только 8-битные данные. Улучшенные результаты при печати могут быть различимы только очень разборчивым взглядом в избранных файлах.) В будущем, когда мониторы и принтеры будут лучше использовать более 8-битные данные, вы начнете видеть видимые улучшения в градациях, когда ваши изображения просматриваются как на дисплее, так и в печати.
Сглаженная гистограмма.
Постеризованная гистограмма.
Пробелы возникают при увеличении контраста; тона, которые были близко друг к другу, расходятся. Всплески возникают при снижении контраста; тона, которые были близко друг к другу, становятся одинаковыми.