맨위로가기

비트스트림 (컴퓨터 과학)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비트스트림은 일련의 비트로 구성된 데이터 스트림을 의미한다. 비트스트림은 바이트스트림을 인코딩하는 데 직접 사용되지 않으며, FPGA 구성 데이터 설명, 특정 무한 수열의 수학적 특성 연구, 압축 알고리즘 코딩 등에 활용된다. 운영 체제는 바이트스트림 패러다임으로 변환하며, TCP는 양방향 바이트 스트림을 제공한다. 비트스트림의 내용은 동적으로 생성될 수 있으며, 흐름 제어를 통해 데이터 생성 속도와 소비 속도를 조절한다.

더 읽어볼만한 페이지

  • 이진 수열 - 투에-모스 수열
    투에-모스 수열은 이진법 숫자의 1의 개수, 점화식, L-시스템 등을 통해 정의되며, 제곱 반복은 포함하지만 세제곱 반복이나 겹치는 제곱 반복은 포함하지 않고, 조합론적 게임 이론 등 다양한 분야에 응용된다.
  • 데이터 전송 - 대역폭 제한
    대역폭 제한은 네트워크 혼잡 방지, 특정 사용자 과도한 사용 방지, 서비스 품질 관리 등을 위해 컴퓨터 네트워크에서 데이터 전송 속도를 인위적으로 제한하는 기술이다.
  • 데이터 전송 - 데이터 링크
    데이터 링크는 데이터를 송수신하기 위한 통신 연결로, 단방향, 반이중, 전이중 통신으로 나뉘며, 다양한 분야에서 활용되고 특히 항공 분야에서 항공 교통 관제 및 정보 교환, 무인 시스템 제어에 사용된다.
비트스트림 (컴퓨터 과학)
비트스트림
8비트 스트림의 시각적 표현
8비트 스트림의 시각적 표현
일반 정보
종류디지털 데이터 시퀀스
구성 요소비트
바이트
사용 분야통신
암호학
데이터 압축
오디오 및 비디오 처리
특징
전송 방식직렬 또는 병렬
데이터 형태연속적인 데이터 흐름
활용
통신데이터 전송 시 비트 단위로 전송
암호학암호화 및 복호화 과정에서 사용
데이터 압축데이터 압축 알고리즘의 입력 또는 출력 형태
오디오 및 비디오 처리디지털 오디오 및 비디오 데이터를 표현하고 처리
관련 개념
데이터 스트림유사한 개념이지만 더 넓은 의미를 가짐

2. 바이트스트림과의 관계

실제로 비트스트림은 바이트스트림을 인코딩하는 데 직접 사용되지는 않는다. 통신 채널은 비트로 직접 변환되지 않는 신호 방식(예를 들어, 여러 주파수의 신호를 전송하는 방식)을 사용할 수 있으며, 일반적으로 데이터와 함께 프레임 동기화나 오류 정정과 같은 다른 정보도 함께 인코딩한다.

3. 예시

비트스트림이라는 용어는 필드 프로그래머블 게이트 어레이(FPGA)에 로드될 구성 데이터를 설명하는 데 자주 사용된다. 대부분의 FPGA는 바이트 병렬 로딩 방식도 지원하지만, 이 용어는 일반적으로 직렬 비트 스트림, 특히 직렬 PROM 또는 플래시 메모리 칩에서 FPGA를 구성하는 방식에서 유래되었을 수 있다. 특정 FPGA에 대한 비트스트림의 자세한 형식은 일반적으로 FPGA 공급업체의 고유 자산이다.

수학에서 몇 가지 특정 무한 수열의 비트가 수학적 특성으로 연구되었다. 여기에는 바움-스위트 수열, 에렌푀이히트-미키엘스키 수열, 피보나치 단어, 콜라코스키 수열, 정규 종이접기 수열, 루딘-샤피로 수열, 투에-모르스 수열이 포함된다.

유닉스 계열 및 윈도우를 포함한 대부분의 운영 체제에서 표준 I/O 라이브러리는 하위 수준의 페이징 또는 버퍼링된 파일 액세스를 바이트스트림 패러다임으로 변환한다. 특히, 유닉스 계열 운영 체제에서 각 프로세스는 단방향 바이트스트림의 예인 세 개의 표준 스트림을 갖는다. 유닉스 파이프 메커니즘은 서로 다른 프로세스 간의 바이트스트림 통신을 제공한다.

압축 알고리즘은 바이트(메모리의 가장 작은 주소 지정 가능 단위)가 제공하는 8비트가 낭비될 수 있으므로 종종 비트스트림으로 코딩된다. 일반적으로 저수준 프로그래밍 언어로 구현되지만, Python[1] 및 Java[2]와 같은 일부 고수준 프로그래밍 언어는 비트스트림 I/O를 위한 네이티브 인터페이스를 제공한다.

클라이언트에게 바이트 스트림 서비스를 제공하는 잘 알려진 통신 프로토콜의 예는 양방향 바이트 스트림을 제공하는 인터넷 프로토콜 스위트전송 제어 프로토콜(TCP)이다.

임의의 바이트 스트림에 대한 인터넷 미디어 유형은 `application/octet-stream`이다. 다른 미디어 유형은 잘 알려진 형식의 바이트스트림에 대해 정의된다.

4. 흐름 제어

비트스트림의 내용은 키보드 입력이나 의사 난수 생성기의 데이터처럼 동적으로 생성되는 경우가 많다.

이때 비트스트림을 생성하는 생산자(producer)와 이를 사용하는 소비자(consumer) 간의 처리 속도 차이로 인해 여러 문제가 발생할 수 있다.

만약 소비자가 생산자보다 데이터를 더 빨리 처리한다면, 시스템은 프로세스 동기화를 사용하여 소비자가 다음 데이터를 사용할 수 있을 때까지 기다리게 한다.

반대로 생산자가 소비자보다 데이터를 더 빨리 생성하는 경우, 시스템은 몇 가지 방식으로 처리한다. 생산자가 소프트웨어 알고리즘이라면 시스템은 프로세스 동기화를 통해 생산자를 잠시 멈춘다. 생산자가 흐름 제어 기능을 지원한다면, 시스템은 소비자가 다음 데이터를 받을 준비가 되었을 때만 생산자에게 신호를 보낸다.

하지만 키보드 입력처럼 생산자를 멈출 수 없거나 흐름 제어를 지원하지 않는 하드웨어의 경우, 시스템은 일반적으로 데이터를 임시로 저장하기 위해 큐와 같은 버퍼를 사용한다. 대부분의 경우 소비자는 버퍼가 가득 차기 전에 데이터를 처리할 수 있다. 그러나 버퍼가 가득 찼는데도 생산자가 계속해서 빠르게 데이터를 보내면, 버퍼 오버플로우, 패킷 손실, 네트워크 정체, 심각한 경우 서비스 거부와 같은 문제가 발생할 수 있다.

참조

[1] 웹사이트 Bitstream https://pypi.python.[...] Python Software Foundation 2016-09-08
[2] 웹사이트 Class BitSet https://docs.oracle.[...] Oracle 2016-11-30



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com