델타 부호화

델타 부호화 또는 델타 인코딩(delta encoding)은 완전한 파일이 아닌 연속 데이터간 데이터 차이의 형태로 데이터를 저장하고 전송하는 한 방법이다. 더 일반적으로 말해, 이를 데이터 차분화(data differencing)로 부른다. 델타 부호화는 특히 변경사항의 보관 이력이 필요한 상황에서 델타 압축(delta compression)으로도 부른다. (예를 들면 버전 관리 소프트웨어에서)

개개의 파일에 기록되는 차이는 델타(delta) 또는 디프(diff)로 부른다. 차이가 작은 상황에서(예: 대형 문서에서 몇 개의 단어의 변경, 대형 테이블에서 몇 개의 레코드 변경) 델타 부호화는 데이터 중복을 상당 부분 감소시킨다. 고유 델타의 모임은 부호화되지 않은 동등 대상에 비해 상당히 더 공간 효율적이다.

 샘플 C 코드 
void delta_encode(unsigned char *buffer, int length)
{
    unsigned char last = 0;
    for (int i = 0; i < length; i++)
    {
        unsigned char current = buffer[i];
        buffer[i] = current - last;
        last = current;
    }
}

void delta_decode(unsigned char *buffer, int length)
{
    unsigned char last = 0;
    for (int i = 0; i < length; i++)
    {
        unsigned char delta = buffer[i];
        buffer[i] = delta + last;
        last = buffer[i];
    }
}

 외부 링크 
 RFC 3229 – Delta Encoding in HTTP

분류:데이터 압축
분류:무손실 압축 알고리즘