Разница между байтовым потоком и битовым потоком

до сих пор я думал, что они такие же, как байты сделаны из битов, и что обе стороны должны знать размер байтов и эндианы другой стороны и соответственно преобразовывать поток. Однако Википедия говорит, что byte stream != bit stream (https://en.wikipedia.org/wiki/Byte_stream ) и bit streams специально используется в видео кодирования (https://en.wikipedia.org/wiki/Bitstream_format). В этом документе https://tools.ietf.org/html/rfc107 они обсуждают эти 2 вещи и описания Two separate kinds of inefficiency arose from bit streams.. Мои вопросы:

  • что это реальные разница между потоком байтов и битовым потоком?
  • как работает битовый поток, если он отличается от байтового потока? Как принимающая сторона знает, сколько битов обрабатывать в данный момент времени?
  • почему битовый поток лучше, чем байтовый поток в некоторых случаях?

4 ответов


поток байтов

поток байтов-это термин, используемый для представления вычислительной техники, которая позволяет отправлять данные по определенному пути. Здесь вместо отдельных единиц и нулей, известных как двоичные цифры или биты, по пути отправляются единицы размером в восемь бит, известные как байты. Его также иногда называют символьным потоком, поскольку большинство символов, составляющих алфавит естественного языка, цифры и т. д. представлены такие 8-разрядные блоки. Путь или сущности, участвующие в передаче данных, несколько абстрактны, поскольку они могут представлять файл, к которому обращается программа, данные, обрабатываемые в программе, или данные, перемещающиеся по сети.

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

другой тип конвейера может использоваться некоторыми операционными системами для получения данных, таких как содержимое файла, и запуска его через несколько различных программ для получения некоторого вывода. Это полезно с приложениями обработки текста, сделанными эффективными через символьный байтовый поток для передачи данных. Таким образом, одно из наиболее распространенных применений потока байтов-для операционной системы компьютера при доступе к данным в файле.

в ранних компьютерных сетях некоторые системы проводили различие между байтом и тем, что также называется октетом. Поскольку октет также является вычислительной единицей, состоящей из восьми битов, термины иногда используются взаимозаменяемо, хотя в этих старых системах они не одно и то же. В результате, однако octet stream-это термин, также используемый при разговоре о потоке байтов, хотя в первую очередь в отношении компьютерных сетей. Одним из таких примеров, "application / octet-stream", является тип multipurpose Internet mail extensions (MIME) для доставки любых двоичных данных по сети.

когда дело доходит до отправки потока байтов по компьютерной сети, надежный двунаправленный протокол транспортного уровня, такой как протокол управления передачей (TCP), используемый в Интернете, требуемый. Они называются протоколом потока байтов. Другие протоколы последовательных данных, используемые с определенными типами аппаратных компонентов, таких как универсальный асинхронный приемник / передатчик (UART) метод, является канал последовательных данных, который также использует поток байтов для связи. В этом случае байт или символ упаковывается в кадр на передающей стороне, где дополнительный стартовый бит и некоторые дополнительные контрольные биты прикрепляются, а затем отделяются обратно из кадра на передающей стороне. приемный конец. Этот метод иногда называют байт-ориентированным протоколом.

байтовые потоки в Java

Как мы уже знаем, потоки помогают нам последовательно получать доступ к файлу или данным. Байтовый поток обращается к файлу "байт за байтом", который подходит для любого типа данных, но в некоторых случаях не рекомендуется использовать байтовый поток. Например, если файл использует кодировку unicode и символ в файле представлен двумя байтами, то байт поток будет рассматривать их отдельно, и нам нужно будет сделать преобразование самостоятельно.

поддерживает ли "байтовые потоки" символы Юникода ?

да, потоки байтов поддерживают байты, таким образом, поддерживает все, что может быть представлено с помощью байтов..то есть текст, фотографии, видео ..так далее. Здесь следует учитывать, что все, чем нужно манипулировать с помощью байтовых потоков, должно следовать некоторым правилам кодирования и декодирования до комбинации 0 и 1.

поток

определение: битовый поток относится к двоичным битам информации (1 и 0), передаваемой с одного устройства на другое.

однако в приложениях домашнего кинотеатра Bitstream относится к цифровому кодированному цифровому или связанному с DTS сжатому аудиосигналу Dolby от исходного компонента (например, DVD, Blu-ray или HD-DVD-плеер, HD-кабель или HD-спутниковая коробка) до предусилителя/процессора (автономного или встроенного в Приемник домашнего кинотеатра) для расшифровывать и распределения к этапу усилителя для окончательного ядрового воспроизводства, в сетноой-аналогов форме, громкоговорителями.

битовый поток можно отправить через цифровой оптически, цифровой коаксиальный, или интерфейс ХДМИ.

Также Известный Как: Битовый Поток, Цифровой Битовый Поток, Аудио Битовый Поток

примеры: DVD или Blu-ray disc player " X " содержит звуковое сопровождение Dolby Digital или DTS, которое кодируется как цифровые биты на диске. DVD-плейер необходимо прочитать эту кодировку, передать кодированный сигнал в виде битового потока через цифровое оптическое, цифровое коаксиальное или HDMI-соединение с приемником домашнего кинотеатра "Y", который имеет цифровой декодер Dolby или DTS. Приемник, в свою очередь, преобразует цифровой код Dolby Digital или DTS bitstream в соответствующее назначение канала в аналоговой форме, а затем усиливается, так что он может быть услышан слушателем через громкоговорители.


Это довольно широкий вопрос, я должен буду дать вид на 10,000 футов. Битовые потоки являются общими в двух различных порядков:

  • очень низкоуровневый, это основной способ работы множества аппаратных средств. Лучшими примерами являются поток данных, который поступает с жесткого диска или оптического диска, или данные, отправленные по линии передачи, например USB-кабель или коаксиальный кабель или телефонная линия, через которую вы получили этот пост. Найденный RFC применяется здесь.

  • высокий уровень, они распространены в сжатии данных, переменное количество бит на токен позволяет упаковывать данные плотнее. кодирование Хаффмана это самый простой способ сжатия. Темы кодирования видео, которые вы нашли, применяются здесь.

в чем реальная разница между потоком байтов и битовым потоком?

потоки байта сильно совместимы с компьютерами которые ориентированные на байт приборы и те, с которыми вы почти всегда будете сталкиваться в программировании. Битовые потоки гораздо более низкого уровня, только инженеры системной интеграции когда-либо беспокоиться о них. Хотя полезной нагрузкой битового потока часто являются байты, которые интересуют компьютер, обычно требуется больше накладных расходов, чтобы гарантировать, что получатель может правильно интерпретировать данные. Там обычно много больше битов, чем необходимо для кодирования байтов в данных. Дополнительные биты необходимы для обеспечения что приемник правильно синхронизирован и может обнаружение и, возможно, исправление битовых ошибок. кодировка NRZ очень часто.

в RFC является достаточно археологических, в 1971 году они по-прежнему долбят из основы компьютеров, чтобы общаться друг с другом. Тогда они все еще были близки к поведению линии передачи, битовому потоку, и многие компьютеры еще не договорились о 8 битах в байте. Они беспокоятся о стоимости преобразования битов в локальные байты на очень анемичном оборудовании и необходимости упаковывать столько битов в сообщение, насколько это возможно.

как принимающая сторона знает, сколько битов обрабатывать в данный момент времени?

протокол определяет это, как это делает RFC. В случае битового кодирования переменной длины сами битовые значения определяют его, как это делает кодирование Хаффмана.

Почему битовый поток лучше, чем байтовый поток в некоторых случаях?

уже прикрыли, я думаю, потому что это лучше подходит для его цель. Либо потому, что оборудование ориентировано на бит, либо потому, что полезно кодирование переменной длины бита.


бит-это один 1 или 0 в компьютерном коде, также известном как двоичная цифра. Чаще всего битовый поток используется с протоколом управления передачей или TCP. Эта серия рекомендаций рассказывает компьютерам, как отправлять и получать сообщения друг с другом. Всемирная паутина и службы электронной почты, в частности, полагаются на руководящие принципы TCP для упорядоченной отправки информации. Отправка через битовый поток гарантирует, что части прибудут в правильном порядке и сообщение не поврежден во время доставки, что может сделать его нечитаемым.Таким образом, поток bit отправляет один бит за другим.

восемь битов составляют байт, и поток байтов передает эти восьмибитные пакеты с компьютера на компьютер.

пакеты декодируются по прибытии, чтобы компьютер мог их интерпретировать.Таким образом, поток байтов является частным случаем битов, отправленных вместе как группа в последовательном порядке.Чтобы поток байтов был наиболее эффективным, он протекает через выделенный и надежный путь иногда называют трубой или трубопроводом. Когда дело доходит до отправки потока байтов по компьютерной сети, требуется надежный двунаправленный протокол транспортного уровня, такой как протокол управления передачей (TCP), используемый в Интернете. Они называются протоколом потока байтов. Другие протоколы последовательных данных, используемые с определенными типами аппаратных компонентов, таких как универсальный асинхронный приемник / передатчик (UART) метод, является канал последовательных данных это также использует поток байтов для связи. В этом случае байт или символ упаковывается в кадр на передающем конце, где дополнительный стартовый бит и некоторые дополнительные контрольные биты прикрепляются, а затем отделяются обратно из кадра на приемном конце. Этот метод иногда называют байт-ориентированным протоколом.

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

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


чтобы добавить к другим хорошим ответам здесь:

поток байтов-это тип из битового потока. Поток байтов описание биты как значимые "пакеты", которые имеют ширину 8 бит.

некоторые (особенно низкоуровневые) потоки могут быть агностиками значения в каждой 8-битной последовательности. Было бы плохим описанием назвать эти "потоки байтов"

подобно тому, как каждая Honda Civic является автомобилем, но не каждый автомобиль является Honda Civic...