Разница между потоком байтов и потоком бит
До сих пор я думал, что они такие же, как и байты из бит, и что обе стороны должны знать размер байта и endiannes другой стороны и соответственно преобразовывать поток. Однако Wikipedia говорит, что byte stream
!= bit stream
(https://en.wikipedia.org/wiki/Byte_stream) и что bit streams
специально используются в видеокодировании (https://en.wikipedia.org/wiki/Bitstream_format). В этом RFC https://tools.ietf.org/html/rfc107 они обсуждают эти две вещи и описывают Two separate kinds of inefficiency arose from bit streams.
. Мои вопросы:
- какова реальная разница между потоком байтов и потоком битов?
- как работает поток бит, если он отличается от байтового потока? Как получающая сторона знает, сколько бит обрабатывается в данный момент времени?
- Почему в некоторых случаях поток бит лучше байтового потока?
Ответы
Ответ 1
BYTE Stream
Байт-поток - это термин, используемый для представления вычислительной техники, которая позволяет отправлять данные по определенному пути. Здесь вместо отдельных и нулей, называемых двоичными цифрами или битами, единицы по размеру восьми бит, называемые байтом, отправляются по пути. Его также иногда называют символьным потоком, так как большинство символов, составляющих алфавит, цифры и т.д., Представлены такими 8-битными единицами. Путь или сущности, участвующие в передаче данных, несколько абстрактны, поскольку они могут представлять собой файл, к которому обращается программа, данные, обрабатываемые в рамках программы, или данные, перемещающиеся по сети.
Для того чтобы поток байтов был наиболее эффективным, он протекает через выделенный и надежный путь, иногда называемый трубой или конвейером. Такой путь должен быть надежным, чтобы обеспечить точность вывода. В одном отношении, рассматривая компьютерное программирование, канал - это путь, который соединяет различные аспекты программы, так что, когда данные обрабатываются с входа, их можно передать в другую часть программы, на другую и так далее, пока он не достигнет выхода.
Другой тип конвейера может использоваться некоторыми операционными системами для получения данных, таких как содержимое файла, и запускать его через несколько разных программ для получения некоторого результата. Это полезно в приложениях для обработки текста, которые эффективны с помощью потока байтов символов для передачи данных. Таким образом, одно из наиболее распространенных применений байтового потока - это компьютерная операционная система, когда она обращается к данным в файле.
В ранних компьютерных сетях некоторые системы сделали различие между байтом и так называемым октетом. Поскольку октет также является вычислительным блоком, состоящим из восьми бит, термины иногда используются взаимозаменяемо, хотя в этих старых системах они не одно и то же. В результате, однако, поток октетов - это термин, который также используется, когда речь идет о потоке байтов, хотя прежде всего в отношении компьютерной сети. Одним из таких примеров "application/octet-stream" является многопользовательский тип расширений электронной почты (MIME) для доставки любых двоичных данных по сети.
Когда дело доходит до отправки байтового потока по компьютерной сети, необходим надежный двунаправленный протокол транспортного уровня, такой как протокол управления передачей (TCP), используемый в Интернете. Они называются протоколом байтового потока. Другие протоколы последовательных данных, используемые с определенными типами аппаратных компонентов, такие как универсальный асинхронный приемник/передатчик (UART), представляют собой последовательный канал данных, который также использует поток байтов для связи. В этом случае байт или символ упаковываются в кадр на передающем конце, где дополнительный стартовый бит и некоторые необязательные контрольные биты присоединяются, а затем отделяются обратно от кадра на принимающем конце. Этот метод иногда называют байтовым протоколом.
Потоки байтов в Java
Как мы уже знаем, потоки помогают нам последовательно обращаться к файлу или данным. Поток байтов обращается к байту байта, который подходит для любого типа данных, но в некоторых случаях его не рекомендуется использовать поток байтов. Например, если файл использует кодировку Unicode, а символ в файле представлен двумя байтами, поток байтов будет обрабатывать их отдельно, и нам нужно будет сделать преобразование самостоятельно.
Поддерживаются ли байтовые потоки символов Юникода?
Да, потоки байтов, поддерживающие байты, поддерживают все, что может быть представлено с использованием байтов....e.e. текст, фотографии, видеоролики..etc. Вещь, которую следует учитывать здесь, заключается в том, что все, что нужно манипулировать с использованием потоков байтов, должно следовать некоторым правилам кодирования и декодирования до комбинации 0 и 1.
поток BIT
Определение:. Битовый поток относится к двоичным битам информации (1 и 0), переданным с одного устройства на другое.
Однако в приложениях домашнего кинотеатра Bitstream относится к цифровому кодированному сжатому аудиосигналу Dolby Digital или DTS с исходным компонентом (таким как DVD, Blu-ray или HD-DVD-плеер, HD-кабель, или HD-Satellite Box) на предусилитель/процессор (автономный или встроенный в домашний кинотеатр) для декодирования и распределения на ступени усилителя для окончательного воспроизведения звука в аналоговой форме громкоговорителями.
Битовый поток может быть отправлен через цифровой оптический, цифровой коаксиальный или интерфейс HDMI.
Также известен как: бит-поток, цифровой бит-поток, аудио-битовый поток
Примеры: проигрыватель дисков DVD или Blu-ray "X" содержит звуковую дорожку Dolby Digital или DTS, которая кодируется как цифровые биты на диске. DVD-плеер должен прочитать эту кодировку, передать закодированный сигнал в форме Bitstream с помощью цифрового оптического, цифрового коаксиального или HDMI-соединения с приемником домашнего кинотеатра "Y", который имеет декодер Dolby Digital или DTS.
Получатель, в свою очередь, преобразует кодированный в цифровой формат поток Dolby Digital или DTS в соответствующее назначение канала в аналоговой форме, затем усиливается, чтобы его можно было услышать слушателем через громкоговорители.
Ответ 2
Это довольно широкий вопрос, мне придется дать представление в 10 000 футов. Бит-потоки распространены в двух разных режимах:
-
очень низкий уровень, это основной способ работы большого количества оборудования. Лучшими примерами являются поток данных, который поступает с жесткого диска или оптического диска или данных, передаваемых по линии передачи, например, USB-кабеля или коаксиального кабеля или телефонной линии, через который вы получили этот пост. Здесь вы найдете RFC.
-
высокого уровня, они распространены при сжатии данных, переменное количество бит на токен позволяет уплотнять данные. кодирование Хаффмана - самый простой способ сжатия. Объекты кодирования видео, которые вы нашли, применимы здесь.
какова реальная разница между потоком байтов и потоком битов?
Байт-потоки очень совместимы с компьютерами, которые являются байт-ориентированными устройствами и теми, с которыми вы почти всегда сталкиваетесь при программировании. Бит-потоки гораздо более низкоуровневые, только инженеры по системной интеграции когда-либо беспокоятся о них. Хотя полезная нагрузка битового потока часто представляет собой байты, которые интересует компьютер, для обеспечения правильной интерпретации данных обычно требуется больше служебных данных. Обычно для кодирования байтов в данных обычно требуется больше бит. Дополнительные биты необходимы для обеспечения правильной синхронизации приемника и обнаружения и, возможно, исправления ошибок в битах. Кодирование NRZ очень распространено.
RFC довольно археологический, в 1971 году они все еще пытались понять, как заставить компьютеры разговаривать друг с другом. Тогда они все еще были близки к поведению линии передачи, потоку бит, и многие компьютеры еще не согласовали 8 бит в байте. Они беспокоятся о стоимости преобразования бит в локальные байты на очень анемичном аппаратном обеспечении и необходимости как можно большего количества бит в сообщении.
Как получающая сторона знает, сколько бит обрабатывать в данный момент?
Протокол определяет, что, как это делает RFC. В случае битовой кодировки с переменной длиной слова это сами битовые значения, такие как кодирование Хаффмана.
почему бит-поток лучше, чем байтовый поток в некоторых случаях?
Покрытый уже я думаю, потому что он лучше подходит для его цели. Либо потому, что аппаратное обеспечение является бит-ориентированным, либо потому, что полезно использовать кодирование с переменной длиной бит.
Ответ 3
Бит представляет собой единый 1 или 0 в компьютерном коде, также известный как двоичная цифра.
Наиболее часто используемым для потока бит является протокол управления передачей или TCP. Эта серия руководств указывает компьютерам, как отправлять и получать сообщения друг с другом. Служба World Wide Web и электронная почта, в частности, полагаются на рекомендации TCP для отправки информации упорядоченным образом. Отправка через поток бит гарантирует, что части поступают в надлежащем порядке, и сообщение не будет повреждено во время доставки, что может сделать его нечитаемым. Так что бит-поток отправляет один бит за другим.
Восемь бит составляют байт, а поток байтов передает эти восьмибитные пакеты с компьютера на компьютер.
Пакеты декодируются по прибытии, поэтому компьютер может их интерпретировать. Таким образом, поток байтов является частным случаем бит, посланных вместе как группа в последовательном порядке. Для того чтобы поток байтов был наиболее эффективным, он протекает через выделенный и надежный путь, иногда называемый трубой или трубопроводом.
Когда дело доходит до отправки байтового потока по компьютерной сети, необходим надежный двунаправленный протокол транспортного уровня, такой как протокол управления передачей (TCP), используемый в Интернете. Они называются протоколом байтового потока. Другие протоколы последовательных данных, используемые с определенными типами аппаратных компонентов, такие как универсальный асинхронный приемник/передатчик (UART), представляют собой последовательный канал данных, который также использует поток байтов для связи. В этом случае байт или символ упаковываются в кадр на передающем конце, где дополнительный стартовый бит и некоторые необязательные контрольные биты присоединяются, а затем отделяются обратно от кадра на принимающем конце. Этот метод иногда называют байтовым протоколом.
Взяв общий пример жизни, предположим, что у вас много папок для отправки. Затем вы можете отправить им одну палку за другой, одну на время.. или вы можете упаковать несколько из них в поле соответствия и отправить их вместе, одна спичечная коробка за другой в последовательности. Сначала это похоже на битовый поток, а последний - как поток.
Таким образом, все зависит от того, чего хочет аппаратное обеспечение или для него лучше всего подходит. Если ваша рука мала, и вы не можете принять спичечные коробки, но вы все еще хотите совпадения, вы берете их по одному, а затем берете коробку. Также байт потоки лучше в определенном смысле, что каждый бит не нужно проверять, а данные могут быть отправлены партиями по 8, если любой из них не удался, все 8 бит могут быть отправлены повторно.
Ответ 4
Чтобы добавить к другим хорошим ответам здесь:
Байт-поток - это тип потока бит. Байт-поток описывает биты как значимые "пакеты" шириной 8 бит.
Некоторые (особенно низкоуровневые) потоки могут быть агностически значимыми в каждой 8-битовой последовательности. Было бы плохое описание для вызова этих "байтовых потоков"
Как и каждый Honda Civic - это автомобиль, но не каждый автомобиль - это Honda Civic...