Битовая плоскость цифрового дискретного сигнала (например, изображения или звука) представляет собой набор бит , соответствующих заданной позиции бита в каждом из двоичных чисел, представляющих сигнал. [1]
Например, для 16-битного представления данных имеется 16 битовых плоскостей: первая битовая плоскость содержит набор наиболее значимых бит, а 16-я — наименее значимых бит.
Видно, что первая битовая плоскость дает самую грубую, но самую критичную аппроксимацию значений среды, и чем выше номер битовой плоскости, тем меньше ее вклад в конечный этап. Таким образом, добавление битовой плоскости дает лучшую аппроксимацию.
Если бит на n-й битовой плоскости в m-битовом наборе данных установлен в 1, он вносит значение 2 m−n , в противном случае он не вносит ничего. Таким образом, битовые плоскости могут вносить половину значения предыдущей битовой плоскости. Например, в 8-битовом значении 10110101 (181 в десятичном виде) битовые плоскости работают следующим образом:
Битовая плоскость иногда используется как синоним Bitmap ; однако технически первая относится к расположению данных в памяти, а вторая — к самим данным. [2]
Одним из аспектов использования битовых плоскостей является определение того, является ли битовая плоскость случайным шумом или содержит значимую информацию.
Один из методов расчета этого заключается в сравнении каждого пикселя (X, Y) с тремя соседними пикселями (X − 1, Y) , (X, Y − 1) и (X − 1, Y − 1) . Если пиксель совпадает хотя бы с двумя из трех соседних пикселей, то это не шум. Шумная битовая плоскость будет иметь от 49% до 51% пикселей, которые являются шумом. [3]
Например, в кодировании звука PCM первый бит в сэмпле обозначает знак функции, или, другими словами, определяет половину всего диапазона значений амплитуды , а последний бит определяет точное значение. Замена более значимых битов приводит к большему искажению, чем замена менее значимых битов. При сжатии медиа с потерями , которое использует битовые плоскости, это дает больше свободы для кодирования менее значимых битовых плоскостей, и более важно сохранить более значимые. [4]
Как показано на изображении выше, ранние битовые плоскости, особенно первая, могут иметь постоянные серии битов, и, таким образом, могут быть эффективно закодированы с помощью кодирования длины серии . Это делается (в области преобразования) в формате изображения Progressive Graphics File , например.
Некоторые компьютеры отображали графику в формате битовой плоскости , в частности, ПК с графической картой EGA , Amiga и Atari ST , в отличие от более распространенного упакованного формата . Это позволяло выполнять определенные классы манипуляций с изображениями с использованием побитовых операций (особенно с помощью чипа- блитера ) и эффектов параллаксной прокрутки.
Некоторые алгоритмы оценки движения могут быть выполнены с использованием битовых плоскостей (например, после применения фильтра для преобразования характерных краевых признаков в двоичные значения). [5] Иногда это может обеспечить достаточно хорошее приближение для операций корреляции с минимальными вычислительными затратами. Это основано на наблюдении, что пространственная информация более значима, чем фактические значения. Свертки могут быть сведены к операциям битового сдвига и подсчета числа элементов или выполнены на выделенном оборудовании.
Форматы битовой плоскости могут использоваться для передачи изображений в нейронные сети Spiking или в низкоточные аппроксимации нейронных сетей / сверточных нейронных сетей . [6]
Многие пакеты обработки изображений могут разбить изображение на битовые плоскости. Для генерации битовых плоскостей можно использовать инструменты с открытым исходным кодом, такие как Pamarith от Netpbm и Convert от ImageMagick .