1 / 244

Chapter 8

Chapter 8. 멀티미디어와 QoS. Chapter 8: Outline. 8.1 압축 8.2 멀티미디어 데이터 8.3 인터넷에서의 멀티미디어 8.4 실시간 대화형 프로토콜 8.5 서비스 품질. Chapter 8: Objective. 압축 (compression) 배후에 있는 일반적인 아이디어 (idea) 에 대해 논의할 것이다 . 비록 압축이 멀티미디어라는 주제와 직접적인 관계는 없지만 , 데이터 압축 없이는 멀티미디어 전송은 불가능하다 .

reyna
Download Presentation

Chapter 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8 멀티미디어와 QoS

  2. Chapter 8: Outline 8.1 압축 8.2 멀티미디어 데이터 8.3 인터넷에서의 멀티미디어 8.4 실시간 대화형 프로토콜 8.5 서비스 품질

  3. Chapter 8: Objective • 압축(compression)배후에 있는 일반적인아이디어(idea)에 대해 논의할 것이다. 비록 압축이 멀티미디어라는 주제와 직접적인 관계는 없지만, 데이터 압축 없이는 멀티미디어 전송은 불가능하다. • 텍스트, 이미지, 비디오 및 오디오 등의 멀티미디어의 요소들에 대해 논의할 것이다. 첫 번째 절에서 논의한 기술들을 이용하여 이러한 요소들을 어떻게 표현, 압축 및 인코딩하는지 보여 줄 것이다. • 인터넷에서의 멀티미디어를 세 가지 항목으로 나눌 것이다: 저장되어 있는 오디오/비디오 스트리밍(streaming stored audio/vide), 실시간 오디오/비디오 스트리밍(streaming live audio/video), 실시간 상호작용 오디오/비디오(real-time interactive audio/video). 간략하게 각각의 기능과 특성을 설명하고 몇 가지의 예를 들 것이다.

  4. Chapter 8: Objective (continued) • 실시간 상호작용(real-time interactive)항목에 집중할 것이다. 이 항목에서 시그널링(signaling)을 위한 프로토콜 두 가지를 소개할 것이다: SIP 및 H.232. 이 프로토콜들은 voice over IP (Internet telephony)에서 사용되며 향후 어플리케이션의 시그널링 프로토콜로 사용이 가능하다. 또한 멀티미디어 어플리케이션에 사용되는 전송 계층(transport layer)프로토콜에 대해서 논의할 것이다. • 서비스 품질(QoS, quality of service)에 대해서 논의할 것이다. QoS는 텍스트만을 이용하는 통신보다 멀티미디어 통신에 더 필요로 하고 있다.

  5. 8-1 압축(COMPRESSION) • 이번 절에서는 대량의 데이터가 교환되는 멀티미디어 통신에서 중요한 역할을 갖는 압축(compression)에 대해서 논의 • 압축은 다음과 같은 항목들로 나눌수 있다: 무손실(lossless) 및 손실(lossy) 압축 • 각 항목에서 사용되는 일반적인 방법에 대해서 간단하게 논의할 것이다

  6. 8.1.1 무손실압축 • 무손실 압축에서는 압축과 압축 해제의 알고리즘이서로 정확히 반대이기 때문에 데이터의 무결성이 보존 됨 • 이 과정에서는 데이터의 어떠한 부분도 손실되지 않음 • 무손실 압축 방식은 보통 데이터를 잃어서는 안될 때 사용 • 예를 들면, 텍스트 파일이나 응용프로그램을 압축할 때 데이터가 손실되어서는 안 됨 • 무손실 압축은 데이터의 크기를 줄이기 위해 간혹 비가역(lossy compression)과정의 마지막 관계로 적용될 때가 있다

  7. 8.1.1 무손실압축 (계속) • 실행 –길이 부호화 • 사전 부호화 • 인코딩(Encoding) • 디코딩(Decoding) • 허프만 코딩(Huffman Coding) • 허프만 트리 • 부호화 테이블 • 인코딩과 디코딩

  8. 8.1.1 무손실 압축 (계속) • 산술 부호화 • 인코딩 • 디코딩 • 정적 대 동적 산술 부호화

  9.  실행 길이 부호화(Run-length coding) • 중복을 제거하는 가장 간단한 방식 • 어떠한 기호(symbol)의 조합으로 만들어진 데이터를 압축할 때 사용 • 반복되는 순서로 두 개의 개체(entities)를 갖는 기호를 실행(run)한다 AAABBBBCDDDDDDEEE 3A4B1C6D3E

  10. Figure 8.1 : 이진 패턴을 압축하기 위한 실행-길이 코딩

  11.  사전 부호화(Dictionary Coding) • Lempel-Ziv-Welch(LWZ) • 문자들을 각각 따로 인코딩하는 대신 공통된 순서의 문자들을 인코딩 하는 것 • 메시지가 스캔이 되면서 사전이 생성되고 만약 문자의 순서가 메시지 안에서 발견된 사전의 엔트리 순서 대신에 엔트리의 코드가 전송 됨 • 인코딩하는 과정 • 메시지 안에 존재할 가능성 있는 문자를 위해 사전은 하나의 시작점을 가지고 초기화 • 그와 동시에 메시지의 첫 번째 문자로 버퍼 혹은 문자열을 초기화 시킴 • 문자열이 가장 큰 엔코딩될 순서를 담음 • 초기화 단계에서는 오직 메시지의 다음 문자를 가지고 옴

  12.  사전 부호화(Dictionary Coding) (계속) • 인코딩하는과정 (계속) • 프로세스(process)가 메시지를 스캔하고 메시지의 다음 문자를 가지고 옴 • 해당 문자의 연계된 문자와 검색된 문자가 사전에 있으면, 그 문자열은 가장 큰 encodable sequence가 아님 • 프로세스는 문자를 가장 마지막 연계 문자로 등록해서 문자열을 갱신하여 다음 반복이 수행 될 때가지 대기 함 • 문자열의 연계와 검색된 문자가 사전에 없으면, 마지막 인쇄에 문자가 등록된 문자열이 아닌 그 문자열이 가장 큰 encodable sequence가 됨 • 여기서 세가지 일을 수행 • 프로세스는 마지막 연계에 문자가 등록된 문자열을 사전에 새로운 엔트리로 등록 • 프로세스는 문자열을 인코딩 • 다음 반복을 위해 검색된 문자와 함께 문자열을 다시 초기화 • 메시지 안에 문자들이 남아 있으면 프로세스는 2번 과정을 계속 반복

  13. Table 8.1: LZW 인코딩

  14. Example 8.1 다음과 같이 테스트 메시지 안에 두 문자 A, B를 가지고 LZW 인코딩을 사용하는 예를 보자(그림 8.1). 그림에서는 문자 “BAABABBBAABBBBAA”가 1002163670으로 인코딩되는 과정을 보여주고 있다. 버퍼 PreS가 갱신되기 전에 이전 반복의 문자열을 가지고 있다는 점을 참고하자.

  15.  사전 부호화(Dictionary Coding) (계속) • 디코딩 • 사전이 초기화, 첫 번째 코드워드는 사전에 이용하여 검색이 되고, 메시지의 첫 번째 문자가 출력 • 프로세스는 문자열을 생성하여 이전에 검색된 코드워드에 세팅해 놓음, 그리고 새로운 코드워드를 검색 • 코드워드가 사전에 존재하면, 프로세스는 사전에 엔트리를 등록 • 코드워드가 사전에 존재하지 않으면 프로세스는 문자열을 문자열의 첫 번째 문자와 연결하며 사전에 저장, 또한 연쇄의 결과를 출력 • 코드 안에 코드워드가 남아 있다면 프로세스는 2번 과정을 반복

  16. Figure 8.2 : Example 8.1

  17. Table 8.2: LZW 디코딩

  18. Example 8.2 예제 8.1의 코드가 어떻게 디코딩되고 원본 메시지로 복원되는지 알아보도록 한다. PreC라는 박스는 이전 반복에서의 코드워드(codeword)를 담고 잇다. 의사코드(pseudocode)로 나타낼 필요는 없지만 여기서는 처리과정을 보이기 위해서 쓰도록 한다. 이번 예제에서는 코드워드가 사전에 존재하지 않는 특별한 경우라는 걸 참고하도록 한다. 사전의 새로운 엔트리는 문자열 및 문자열 안에 있는 첫 번째 문자로부터 생성되어야 한다. 출력값은 새로운 엔트리와 비슷하다.

  19. Figure 8.3 : Example 8.2

  20.  허프만 코딩 (Huffman Coding) • 이진패턴으로 인코딩할 때 각 기호마다 고정된 숫자의 비트를 사용 • 데이터를 압축할 시 기호의 빈도수(frequency)와 메시지 안에서 발생 가능성을 고려할 수 있음 • 짧은 코드를 자주 발생하는 기호에 할당하고 긴 코드는 덜 발생되는 기호에 할당 • 허프만 트리(Huffman Tree) • 입사귀(leaves)가 기호가 되는 트리(tree)를 말함 • 빈도수가 가장 높은 기호를 트리의 루프(root)에 배치 • 가장 낮은 빈도수를 갖는 기호를 루트로부터 가장 먼 곳에 배치

  21. Figure 8.4 : 허프만 트리

  22.  허프만코딩 (Huffman Coding) (계속) • 부호화 테이블(Coding Table) • 각 문자들이 어떻게 인코딩/디코딩 되는지 확인할 수 있는 테이블을 생성 • 각 문자의 코드는 루트(root)에서 시작, 그 문자로 뻗어 나가는 가지(branches)에 존재 • 코드 자신이 경로에 있는 가지의 비트 값(bit value)이며 순차적으로 진행

  23. Table 8.3: 부호화 테이블

  24. Figure 8.5 : 허프만 코드를 이용한 인코딩/디코딩

  25.  산술 부호화(arithmetic coding) • 메시지 전체를 작은 구간 내부로[0, 1)매핑 • 그 다음 그 작은 구간은 이진 패턴으로 인코딩이 된다 • 산술 부호화는 무한의 작은 구간들을 반개구간[0,1) 안에 담을 수 있는 사실을 바탕으로 되어 있음 • 각각의 작은 구간들은 유한한 세트의 기호들을 이용하여 생성 가능한 메시지를 표현할 수 있음

  26. Figure 8.6 : 산술 부호화

  27.  산술 부호화(arithmetic coding) (계속) • 인코딩 • 산술 부호화로 메시지를 인코딩하려면, 첫째로 각 기호마다 발생 확률을 할당해야 함 • 만약 알파벳 내부에 M기호가 존재하면, 발생확률은 P1, P2, …., PM이며 P1 + P2 + … + PM = 1.0

  28. Table 8.4: 산술 부호화

  29. Example 8.3 간편성을 위해서 현재 가지고 있는 기호가 S = {A, B, ∗}라 가정 했을 때, 여기서 ‘*’는종료 기호, 각 기호에 발생 확률을 다음과 같이 할당할 수 있다. 그림 8.7은 구간과 "BBAB*"라는 짧은 메시지와 관련된 코드를 어떻게 찾는지 확인할 수 있다.

  30. Figure 8.7 : Example 8.3

  31.  산술 부호화(arithmetic coding) (계속) • 디코딩 • 디코딩은 인코딩과 비슷하지만, 종료 기호가 출력 값을경우 루프에서 벗어남 • 원본 메시지에 종료 기호가 있어야 하는 이유는 이 때문

  32. Table 8.5: 산술 디코딩

  33. Example 8.4 그림 8.8에서는 예제 8.3의 메시지를 디코딩하기 위한 과정을 살펴볼 수 있다. 여기서 핸드(hand)는 해당되는 구간의 숫자의 위치를 나타낸다.

  34. Figure 8.8 : Example 8.4

  35. 8.1.2 손실 압축 • 무손실 압축은 압축할 수 있는 양의 한계가 있음 • 그러나 어떤 상황에서는 정확성을 희생시켜 압축률을 증가시킬 수 있다 • 비록 텍스트를 압축할 때 정보가 손실되는걸 감안할 수 없지만, 이미지, 비디오 및 오디오를 압축할 시 감안할 수 있음 • 예를 들면, 비가역압축(lossy compression)으로 인한 이미지의 왜곡된 부분은 사람의 시각으로 감지 못할 경우가 있다 • 이번 절에서는 비가역압축에 대한 몇 가지 아이디어에 대해서 알아보도록 할 것이다

  36. 8.1.2 손실 압축 (계산) • 예측 부호화(Predictive Coding) • 델타 변조(Delta Modulation) • 적응 델타변조(ADM, Adaptive DM) • 차분 펄스 부호 변조(DPCM, Differential PCM) • 적응 차분 펄스 부호 변조(ADPCM, Adaptive DPCM) • 선형 예측 부호화(Linear Predictive Coding) • 변환 부호화(Transform Coding) • 이산 코사인 변환(DCT, Discrete Cosine Transform)

  37.  예측 부호화(predictive coding) • 아날로그 신호를 디지털 신호로 변경할 때 사용 • PCM에서는 샘플들이 따로 양자화 됨 • 그러나 이웃되는 양자화 샘플들은 깊은 연관성이 있고 비슷한 값을 가짐 • 예측 부호화에서는 이러한 유사한 부분들을 사용 • 각 샘플들을 양자화하는 대신 차이만 양자화 함 • 차이는 실제 샘플보다 작고 적은 비트 수를 요구 함

  38.  예측 부호화(predictive coding) (계속) • 델타변조 • 예측 부호화에서 가장 간단한 기법 • xn을 샘플링 구간 n의 본래 기능의 값이고, yn은 xn의 복원된 값이라고 하자 • PCM에서는 송신자가 샘플(xn)을 양자화 하고 수신자에게 전송 함 • 델타변조에서는 송신자가 en, 각 샘플(xn)의 차이 그리고 복원 이전의 값(yn-1)을 양자화 함

  39. Figure 8.9 : 델타변조의 인코딩/디코딩

  40. Figure 8.10 : xn − xn−1 v과 xn − yn−1 의 양자화 복원 • 델타변조(계속) • 그 후 송신자는 Cn을 전송 • 수신자는 Cn으로부터 전달받은 샘플을 yn으로 복원

  41.  예측 부호화(predictive coding) (계속) • 적응 델타변조(ADM, Adaptive DM) • 그림 8.11은 델타변조에서 양자화 △의 역할을 보여줌 • 기울기 과부화 왜곡(slope overload distortion) • △가 원래 함수의 기울기랑 비교 했을 때 차이가 상대적으로 작은 영역에서는 복원된 계단 신호는 원래 함수를 따라잡을 수 없음 • 입상 잡음(granular noise) • △가 원래 함수의 기울기랑 비교했을 때 차이가 상대적으로 큰 영역에서는 복원된 계단 신호는 지속적으로 함수 주위에서 크게 진동

  42. Figure 8.11 : 기울기 과부화와 입상 잡음

  43.  예측 부호화(predictive coding) (계속) • 적응 델타변조(계속) • 대부분의 함수들이 기울기가 크고 작은 영역이 존재하므로, △를 위해 큰 값 또는 작은 값을 선택하더라도 하나의 오류는 감소하고 그 반대의 경우 오류가 증가하게 됨 • 이러한 문제해결을 위해 적응 DM(Adaptive DM)을 사용 • ADM에서는 △값이 현재 단계에서 다음으로 넘어갈 때 변함 △n = Mn△n-1

  44.  예측 부호화(predictive coding) (계속) • 차분 펄스 부호 변조 (DPCM, Differential PCM) • 일반적인 델타변조 • 이전의 복원된 샘플 yn-1은 예측자라고 함 • DPCM에서 예측하기 위해 하나 이상의 이전에 복원된 샘플을 사용

  45.  예측 부호화(predictive coding) (계속) • 차분 펄스 부호 변조 (계속) • 수신자는 다음과 같이 현재의 값을 복원 • 예측계수는 실제값과 예측값 사이의 누적된 오류를 최소화하면서 발견 • 최적화로는 제곱법 오류(method of square error)를 사용

  46.  예측 부호화(predictive coding) (계속) • 적응차분 펄스 부호 변조(Adaptive DPCM) • 샘플의 또 다른 영역에 다른 계수를 사용하거나 양자화(△)를 단계별로 조정 또는 두 가지 방식을 다 이용하여 보다 나은 압축을 할 수 있음 • 선형 예측 부호화(LPC, linear predictive coding) • 차이의 양자화 신호를 전송하는 대신 소스가 신호를 분석하고 특성을 결정함 • 특성에는 주파수의 민감한 범위 안에 있는 주기, 주파수의 세기 그리고 각 신호의 지속시간 등을 포함 • 그 후 소스는 이러한 정보를 양자화하고 수신자에게 전송 • 수신자는 이러한 정보를 신호 합성기로 공급하여 원본 신호와 비슷한 신호로 시뮬레이션 함 • 높은 수준의 압축이 가능 • 주로 군사용, 음성압축에 사용

  47.  변환 부호화 • 출력신호를 위해 입력신호에는 수학적 변환을 적용하였음 • 원본 신호가 복구되기 위해서는 변환은 역으로 되어야 함 • 변환은 신호 표현을 하나의 도메인에서 다른 도메인으로 변환함 • 이산 코사인 변환(DCT, discrete cosine transform) • 멀티미디어에서 가장 흔하게 쓰이는 변화 기술 • 1차원 DCT(One-Dimensional DCT) • 1차원 DCT에서 변환은 열벡터 p와 정방행렬 t의 행렬 곱 • 결과값은 열백터 M • DCT 계수를 표현하는 정방행렬은 직교행렬이기 때문에 역변환은 DCT 계수의 변환 데이터 행렬과 전치행렬의 곱으로 구할 수 있음

  48. Figure 8.12 : 1차원 DCT

  49. Figure 8.13 : 1 차원 DCT의 변환 및 역변환 공식

  50. Example 8.5 그림 8.14는 N=4를 위한 변환 행렬을 보여주고 있다. 그림과 같이 첫 번째 열은 동일한 값을 가지고 있으며, 다른 열에서는 양과 음의 값이 번갈아 있다. 각 열이 소스 데이터 행렬과 곱하면, 양과 음의 값들이 0에 가까워질 것이라 예상할 수 있다. 여기서 기대하는 변환은 다음과 같다. 소스 데이터의 값 중에 중요한 것도 있지만 대부분의 값들은 불필요하다.

More Related