인코더
인코더(encoder)는 특정 형식의 데이터를 다른 형식으로 변환하는 장치, 회로, 소프트웨어 또는 알고리즘을 통칭하는 용어이다. 주로 데이터의 전송, 저장, 처리 또는 보안을 위해 사용되며, 다양한 기술 분야에서 여러 의미로 활용된다. 인코딩의 반대 과정은 일반적으로 디코딩(decoding)이라고 한다.
컴퓨터 및 통신 컴퓨터 및 통신 분야에서 인코더는 데이터를 전송하거나 저장하기에 적합한 형태로 변환하는 다양한 장치나 과정을 의미한다.
- 라인 코딩(Line Coding): 디지털 데이터를 전송 매체에 적합한 전기 신호 패턴으로 변환한다. 맨체스터 코딩 등이 예시이다.
- 채널 코딩(Channel Coding): 데이터에 오류 검출 및 정정 기능을 추가하기 위해 코드를 삽입하여 신뢰성을 높인다. FEC(Forward Error Correction), CRC(Cyclic Redundancy Check) 등이 포함된다.
- 소스 코딩(Source Coding): 데이터의 압축을 통해 정보량을 줄이는 과정이다. 데이터 압축 인코더가 여기에 해당하며, 멀티미디어 인코더와 일부 중첩된다.
- 문자 인코딩(Character Encoding): 사람이 사용하는 문자를 컴퓨터가 이해할 수 있는 이진 코드로 변환하는 방식이다. ASCII, UTF-8 등이 대표적이다.
멀티미디어 멀티미디어 분야에서 인코더는 오디오, 비디오와 같은 아날로그 또는 압축되지 않은 디지털 신호를 저장 및 전송 효율을 높이기 위해 압축된 디지털 형식으로 변환하는 소프트웨어 또는 하드웨어를 의미한다. 코덱(Codec, 인코더와 디코더의 합성어)의 인코딩 부분을 담당하며, MP3 인코더, H.264 인코더 등이 있다.
제어 시스템 및 로봇 공학 제어 시스템 및 로봇 공학 분야에서 인코더는 기계적인 움직임(회전, 직선 운동)을 전기적인 신호로 변환하여 위치, 속도, 각도 등을 측정하는 센서 장치를 의미한다.
- 회전형 인코더(Rotary Encoder): 회전축의 각도나 회전량을 측정하며, 측정 방식에 따라 절대형 인코더와 증분형 인코더로 구분된다.
- 직선형 인코더(Linear Encoder): 직선 운동체의 위치를 측정한다.
기계 학습 기계 학습, 특히 신경망 모델에서 인코더는 입력 데이터를 저차원의 벡터 표현(잠재 공간, latent space)으로 변환하는 신경망 모델의 일부를 의미한다.
- 오토인코더(Autoencoder): 입력 데이터를 압축된 형태로 인코딩한 후, 디코더가 이를 다시 원본 데이터로 복원하도록 학습하는 구조에서 인코딩을 담당하는 부분이다.
- 트랜스포머(Transformer): 자연어 처리 등의 분야에서 입력 시퀀스를 문맥 정보를 포함하는 벡터 시퀀스로 변환하는 역할을 한다.