본문 바로가기
정보과학/영상통신시스템

모바일 영상 통신

by J1소프트 2023. 10. 18.
728x90

1. 모바일 환경에서의 비디오 통신

 

1.1 모바일 영상 통신을 위한 주요 과제

최근 들어 이동통신은 일상적인 생활과 밀접하게 활용되고 있으며, 그 활용 범위는 음성 통신 위주의 활용을 넘어서 멀티미디어 응용으로 확대되고 있다.

      ▷ 모바일 비디오 통신의 응용 분야

            ¤ VOD

            ¤ 원격 교육

            ¤ 대화형 게임

            ¤ 쇼핑

            ¤ 뉴스와 같은 온라인 미디어 서비스

            ¤ 영상전화, 영상회의

            ¤ 원격 의료 상담 및 진단

            ¤ 원격 보안 감시

 

이러한 서비스가 원활히 이루어지려면 다음과 같은 과제가 해결되어야 한다.

고효율 부호화

      ▷ 무선 통신 스펙트럼은 매우 제한되어 있어서 모바일 채널로 사용할 수 있는 대역폭에 엄격한 제한이 가해진다. 따라서 효율적인 부호화 기술이 매우 중요하다.

 

계산 복잡도 낮추기

      ▷ 모바일 장치에서는 처리 성능과 베터리의 수명이 매우 제한적이다. 비디오를 처리하는 데 사용될 수 있는 계산 성능이 정해져 있으므로, 복잡도를 낮추는 기술이 매우 중요하다.

 

에러 내성 개선

      ▷ 모바일 채널은 다중 채널 페이딩, 채널간 간섭 등의 몇 가지 손실 메커니즘에 기인한 비트 에러율이 높은 환경이다.

      ▷ 비디오 비트스트림은 대역폭 제한을 맞추기 위해 예측 부호화와 가변길이 부호화를 포함하는 고효율 압축 부호화 기법에 의해 높은 압축률로 압축되어 있기 때문에, 적은 수의 비트 에러는 복호화된 화면에서 이보다 더 큰 양으로 에러의 효과가 확대된다.

      ▷ 또한 예측 부호화와 가변길이 부호화를 적용하고 있어 에러가 시간적, 공간적으로 전파되는 문제가 있다.

      ▷ 따라서 에러 내성을 강화하는 기술이 매우 중요하다.

 

1.2 가능한 해결 방안

전형적인 비디오 부호화기는 [그림1]과 같은 구조로 구성되어 있다.

      ▷ 비디오 시퀀스 내에서 인접한 화면의 변화는 주로 화면 내 객체의 움직임에 기인한다.

      ▷ 움직임 추정(motion estimation, ME) 블록은 현재 화면과 기준 화면 사이에 존재하는 움직임을 검출한다.

      ▷ ME 정보는 현재 프레임의 화면을 만들기 위해 기준 화면의 내용을 복사한 움직임 보상(motion compensation, MC) 블록을 만드는데 사용된다.

      ▷ 이처럼 움직임 보상으로 얻은 예측 영상을 현재 화면에서 빼면 오차 영상 Dn이 만들어지는, 이 영상은 현재 영상에 비해 훨씬 작은 엔트로피를 갖게 된다.

 

이와 같은 움직임 보상 기반 예측 부호화를 하는 코덱을 주의 깊게 검토해 보면 앞서 제기한 세 가지 문제점을 위한 대책으로 움직임 기반 접근방법이 적절한 해결 방향을 제시할 수 있음을 알 수 있다.

 

움직임 기반 접근방법은 다음과 같이 요약할 수 있다.

진보된 움직임 추정 기술

      ▷ 움직임 추정의 성능을 개선하면 오차 영상의 엔트로피를 낮추어 더욱 효율적인 부호화가 가능하게 한다.

낮은 복잡도의 움직임 추정 기술

      ▷ 움직임 보상은 비디오 코덱의 처리 과정 중 가장 많은 계산을 요하는 부분이다.

      ▷ 따라서 움직임 추정의 복잡도를 줄이면 코덱의 전체적인 복잡도를 낮출 수 있다.

움직임 보상 에러 은닉 기술

      ▷ 비디오 코덱의 출력에서 실제 영상 데이터와 직접적으로 관련된 데이터는 움직임 벡터 정보와 오차 데이터이다. 그 중에서 움직임 벡터는 그 화면에 대한 대부분의 정보를 포함한 다고 할 수 있다.

 

특히 모바일 비디오 통신과 같이 매우 낮은 비트율을 사용하는 경우, 사용할 수 있는 비트 용량의 대부분을 움직임 정보가 차지한다.

에러가 발생하였을 때 움직임 정보를 복구하는 것이 매우 중요하며, 이를 목적으로 하는 에러 내성 기술이 움직임 보상 에러 은닉 기술이다.


2. 효율적인 움직임 추정

 

2.1 블록 기반 움직임 추정의 오차 에너지 측정

비디오 압축 부호화 표준에서 사용하는 움직임 보상은 블록단위의 움직임 보상을 사용한다.

 

움직임 보상은 양자화 후의 오차 변환 계수들의 에너지를 최소화 하는 것을 목표로 하며, 에너지는 오차 블록의 에너지에 의해 좌우된다.

 

오차 블록의 에너지를 측정하는 방법은 MSE(mean square error), MAE(mean absolute error), SAE(sum of absolute error)가 사용될 수 있다. 블록의 크기가 M×N이고,  fc가 현재 화면,  fr참조 화면, ( Δ,  Δ)가 움직임 벡터일 때, MSE, MAE, SAE는 각각 다음과 같이 정의된다.

SAE는 계산이 뺄셈과 덧셈만으로 구성되어 있어 가장 단순하므로 오차 에너지 측정방법으로 많이 사용된다.

 

H.264 참조모델 소프트웨어는 예측 오차 측정 방법으로 SA(T)D(sum of absolute difference of the transformed residual data)를 사용한다. 오차 블록을 매번 변환해 보아야 하므로 계산량을 증가시키지만, 에너지 측정의 정확도를 향상시킨다.

 

2.2 블록의 크기

블록 기반 움직임 보상에서 블록의 크기는 움직임 보상의 성능과 밀접한 관계가 있다.

 

블록의 크기는 16×16 블록을 사용하기도 하고, 오차 화면의 에너지를 더욱 낮추기 위해 그보다 작은 서브블록으로 더욱 분할하기도 한다.

 

블록의 크기가 작으면 오차 화면의 에너지를 낮출 수 있으나, 움직임 벡터의 수가 증가하는 추가적인 오버헤드가 발생한다.

      ▷ 오차 에너지를 줄이면서 이에 따른 오버헤드가 지나치게 발생하지 않도록 하기 위해서는 영역의 특성에 따라 블록의 크기가 결정되도록 할 수 있다.

      ▷ H.264/AVC에서는 16×16 크기의 매크로블록에 대해 움직임 보상을 할 수도 있지만, 필요에 따라서는 8×16, 16×8, 8×8 블록으로 분할하여 움직임 보상을 할 수도 있고, 8×8 블록의 경우에는 다시 4×8, 8×4, 4×4 블록으로 더욱 분할하여 움직임 보상을 할 수도 있다.

      ▷ 일반적으로 단조로운 영역에서는 큰 블록이 적합하고, 복잡한 영역에서는 작은 블록을 사용 하는 것이 좋다.

 

2.3 움직임 벡터의 탐색

디지털 비디오를 처리하는 데는 상당히 많은 양의 계산 능력이 필요하다. 이는 특히 실시간 모바일 비디오 통신에 주요 걸림돌이 되는데, 모바일 통신의 경우 계산 능력과 배터리 전원이 충분하지 못하기 때문이다.

 

일반적인 비디오 코덱의 구성요소들이 차지하는 처리시간의 비율을 검토해 보면 계산 시간의 상당 부분이 움직임 추정에 소비되는 것을 알 수 있다.

() Telenor가 구현한 H.263 baseline mode 부호기의 처리 시간 비율

¤ QCIF Forman 비디오 시퀀스, 64Kbps

(1) 완전 탐색(Full Search)

탐색 윈도우 내의 각 점에서 SAE(sum of absolute error)를 계산한다.

 

현재 블록의 위치를 기준으로 상, , , 우로 S만큼 떨어진 위치까지를 탐색 윈도우로 정의할 때 (2S+1)2개의 블록 비교를 해야 한다.

 

각 블록에서 SAE를 계산할 때 기존에 최소의 SAE값보다 큰 값이 나오면 계산을 중단함으로써 계산 시간을 절약한다.

 

스캔 순서 : 움직임 벡터가 (0, 0) 주위에 집중될 가능성이 높으므로 단순히 순차 스캔을 하는 것 보다는 (0, 0) 위치를 중심으로 나선형 스캔을 하는 것이 계산량을 줄일 가능성이 높다.

(2) Two-Dimensional Logarithmic(TDL) Search

탐색 방법

탐색 윈도우의 중앙에서 시작하여 적절한 스텝 크기(탐색 위치 사이의 간격)로 시작한다.

각 단계에서 TDL은 탐색 중앙 위치를 중심으로 5개의 탐색 위치에 블록이 이동하였을 경우에 대한 SAE를 계산한다.

      ▷ 이 예에서는 스텝 크기가 2이며, (0, 0), (2, 0), (-2, 0), (0, 2), (0, -2) 만큼 이동한 위치에서 계산한다.

SAE가 가장 작은 위치가 (0, 0)이 아니라면 해당 위치로 탐색 중앙 위치를 이동하여 반복한다.

스텝 크기를 반으로 줄인다. 만일 스텝 크기가 1이 아니라면 , 을 반복한다.

스텝 크기가 1이면 탐색 중앙 위치와 그 위치를 중심으로 한 8 이웃 위치에 대해 SAE를 계산한다. 이 위치가 움직임의 위치이다.

 

TDL이 제안된 후 이와 유사한 알고리즘들이 많이 제시되었다.

      ▷ : Tree-Step Search (TSS)


3. 에러 내성 비디오 부호화 기술

 

3.1 에러의 유형

디지털 비디오에 영향을 미치는 에러는 랜덤 비트 에러(random bit error)와 버스트 에러(burst error)로 개략적인 분류를 할 수 있다.

랜덤 비트 에러

      ▷ 랜덤 비트 에러는 비트 반전, 비트 삽입 그리고/또는 비트 삭제의 형태로 나타난다.

      ▷ 비트 에러율(bit error rate, BER) : 비트 에러가 발생할 평균 확률

      ▷ 주로 열 잡음과 같은 물리적 효과에 의해 발생한다.

버스트 에러

      ▷ 연속적인 비트 구획의 손실(또는 손상)의 형태로 나타난다.

      ▷ 모바일 채널에서 버스트 에러는 단기 (다중경로) 페이딩, 장기 (전파 음영, shadowing) 이딩, 채널 간 간섭 등의 몇 가지 메커니즘에 기인한다.

 

비디오 비트 스트림에서 랜덤 비트 에러는 버스트 에러와 동등한 효과를 낼 수 있다.

      ▷ 예측 부호화 및 가변길이 부호화의 영향

 

3.2 에러의 영향

 

(1) 격리된 영향

에러의 영향이 공간적 또는 시간적으로 전파되지 않는 경우

      ▷ : 고정길이 부호의 에러, 가변길이 부호에서 동일 길이의 다른 부호로 바뀐 경우

            ※ 두 경우 모두 에러 발생 부호가 다른 부호의 예측에 사용되지 않았다고 가정함

 

비디오 비트 스트림에서 에러의 영향이 이처럼 격리되는 것은 드물다.

 

비교적 에러의 영향이 적고 쉽게 다룰 수 있으나, 핵심적인 헤더 정보(프레임 크기, 양자화기 스텝 크기와 같은)와 같은 영역에서 발생한다면 그 영향은 심각하다.

 

(2) 공간적 에러 전파

공간적 에러 전파는 주로 다음의 두 메커니즘에 기인한다.

 

1. 가변길이 부호 데이터의 에러 : 에러로 인해 가변길이 부호 단어를 유효하지 않은 부호 단어로 바뀌거나 다른 길이의 유효 부호 단어로 바뀌면 비트 스트림 동기화 상실(loss of bitstream synchronization)이 발생한다. 여기에는 두 가지 형태가 있다.

 

부호 단어 동기화 상실

      ▷ 복호기가 잘못된 길이의 부호 단어로 복호함으로써, 다음 부호 단어가 잘못된 위치에서 복호되며, 이어지는 부호 단어들이 영향을 받을 수 있게 된다.

      ▷ 이 영향은 일시적이며, 결국은 부호 단어 동기를 되찾게 된다.

계수 동기화 상실

      ▷ 부호 단어 동기를 되찾게 되더라도 이전의 잃어버린 계수들이 없으면 무의미한 계수들을 복호하게 될 수 있다.

      ▷ : 런 길이 부호화의 경우 런 길이가 올바르게 복호되지 않으면 이어지는 모든 데이터는 잘못된 위치에 놓이게 된다.

2. 예측 부호화된 데이터의 에러

      ▷ 예측 부호화된 데이터에 에러가 발생하면 에러가 발생한 데이터를 기준으로 하여 예측된 이후의 데이터들은 올바르게 복호되지 않으며, 이 오류는 이후의 데이터로 전파된다.

      ▷ : 주변 움직임 벡터들을 기준으로 하여 움직임 벡터를 예측 부호화 할 때, 기준 벡터에 에러가 발생하면 예측된 움직임 벡터는 올바르지 않으며, 이 에러는 이후의 움직임 벡터들에 전파된다.

 

(3) 시간적 에러 전파

시간적 에러 전파는 주로 움직임 보상 예측을 포함한 시간 축에서의 예측 부호화에 기인한다.

 

움직임 보상 예측 부호화에서는 참조 화면으로부터 현재 화면으로 블록이 복사된다. 만일 참조된 부분에 이미 에러가 존재하면 그 에러는 현재 화면에서도 나타나게 된다.

 

3.3 에러의 검출

패킷의 헤더 정보를 이용한 에러 검출 : 시퀀스 넘버를 이용하여 패킷 손실 검출

 

FEC(forward error correction) : 부가된 패리티 정보를 이용하여 에러 검출

 

문법 또는 문맥 위반 검출

      ▷ 유효하지 않은 부호 단어 검출

      ▷ 복호된 데이터의 양이 맞지 않는 경우

            ¤ DCT 계수의 수, 매크로블록 내의 블록 수, 매크로블록의 수 등

      ▷ 복호된 움직임 벡터가 허용 가능한 범위를 벗어난 경우

      ▷ 복호된 양자화 파라미터가 범위를 벗어난 경우

 

자연 비디오 신호의 일반적 특성을 위반한 경우의 검출

      ▷ : 블록 경계에서 매우 큰 불연속이 검출되는 경우

 

3.4 예방적 에러 내성 기술

예방적 기술은 부호기가 주된 역할을 하는 기술을 의미한다.

 

이러한 기술에서는 비디오 비트스트림에 적절한 양의 여분 데이터를 추가한다.

 

3.4.1 Forward Error Correction (FEC)

FEC는 디코더가 전송 에러를 검출하고 정정하는 것을 돕기 위한 중복 정보 비트들을 추가한.

 

k비트로 구성된 블록에 r비트의 패리티를 더하여 보낸다.

      ▷ : H.263 Annex H에는 선택사항으로 FEC 모드를 제공한다.

            ¤ BCH (Bose-Chaudhuri-Hocquenghem) 부호 사용

            ¤ 493비트의 블록에 18비트의 패리티 비트를 더하여 511비트의 부호 단어를 구성

            ¤ 두 개의 비트 에러까지 검출할 수 있으며, 한 개의 비트 에러가 발생한 경우는 이를 정정할 수 있다.

 

3.4.2 강인한 파형 부호화

파형 부호기(waveform coder)는 소스 부호기 중에서 엔트로피 부호기 이전까지의 단계를 의미한다.

      ▷ MC, DCT, 양자화기 등

 

파형 부호기는 비디오 입력에 존재하는 공간적, 시간적, 시각적 여분 정보를 제거한다. 그러나 강인한 파형 부호화 기술에서는 에러 내성을 가질 수 있도록 의도적으로 중복 정보를 남겨두거나 오히려 추가한다.

 

(1) 중복 정보의 추가

MPEG-2 부호기는 선택적으로 화면간 부호화 매크로블록을 위한 보조 움직임 벡터를 전송할 수 있는 옵션이 있다.

      → 손상된 매크로블록을 감추는데 사용될 수 있다.

 

MPEG-4 VisualHEC 비트 : 비디오 패킷의 헤더를 중복 전송하는 것을 선택적으로 지정할 수 있다.

H.264/AVCBaseline 프로파일에서는 중복 슬라이스(redundant slices)를 추가함으로써, 슬라이스에서 에러가 발생할 경우에 대비할 수 있다.

 

H.264/AVC의 임의 슬라이스 순서(ASO) 기능을 사용하면 화면 내의 중요 영역과 그 외의 영역을 별도의 슬라이스 그룹에 포함시키고, 중요한 슬라이스 그룹에는 더욱 강화된 에러 내성 기술을 적용하도록 할 수 있다.

(2) INTRA Refresh

시간적 에러 전파를 막는 효과적인 방법은 주기적으로 화면을 INTRA 모드 부호화를 하는 것이. 그러나 INTRA 화면은 상당한 비트량을 발생시키는 문제가 있다.

 

모바일 비디오 통신과 같은 응용에서 보다 적절한 방법은 매크로블록 수준에서 INTRA refresh를 하는 것이다.

 

필요한 INTRA MB의 수는 채널의 질이나 용량에 의존된다. 예를 들어 모바일 네트워크의 안테나 파라미터는 채널의 질에 대한 지수로 사용될 수 있다.

 

(3) 예측의 제한

예측에 사용할 참조 영역을 공간적 그리고/또는 시간적으로 제한하여 어느 영역에서 발생한 에러가 그 영역에 국한되도록 한다.

() H.264INTRA 예측 부호화 : 동일 슬라이스 내의 매크로블록만을 이용하여 예측한다.

 

3.4.3 강인한 엔트로피 부호화

가변길이 부호(VLC)의 단점은 비트스트림 내의 에러가 동기화 상실을 유발하여 공간적 오류 전파가 발생한다는 것이다.

 

이러한 영향을 줄이는 한 가지 방법은 재 동기화 마커를 사용하는 것이다.

 

오류가 발생하면 복호기는 재 동기화 마커를 만날 때까지 나머지 비트들을 건너뛰어 재 동기화를 한다.

 

Reversible VLC를 사용할 경우 재 동기화 마커로부터 역방향 복호화를 하여 에러의 영향을 최소화 할 수 있다.

3.5 에러 은닉 기술

복호기 측의 에러 내성 기술 : 복호기가 주관적으로 허용할 만한 원본 데이터에 대한 근사 화면을 만들어 냄으로써 에러를 감춘다.

      ▷ 인간 시각 시스템의 특성과 비디오 시퀀스의 높은 시/공간적 상관관계를 이용한다.

 

(1) 공간적 오류 은닉 기술

비디오 신호가 공간적인 연관성이 높다는 점을 이용하여, 올바르게 전송된 같은 화면 내의 이웃한 픽셀 값들로 에러를 감춘다.

() 공간적 보간에 의한 에러 은닉

(2) 시간적 에러 은닉

시간적 기술은 비디오 신호가 가지고 있는 높은 시간적 상관도를 이용하여 손상된 픽셀들을 감춘다.

 

일반적으로 손상된 블록에 대한 움직임 벡터를 추정하고, 참조 화면에서 해당 위치를 복사하는 과정을 거친다.

 

움직임 벡터의 추정 방법

움직임 벡터를 (0, 0)으로 하는 단순한 방법

      ▷ 배경과 같이 정적인 영역에서는 효과적이다.

      ▷ 빠르게 움직이는 영역에서는 올바른 예측을 할 수 없다.

주변 블록들의 움직임 벡터의 평균이나 중간값을 취하는 방법

      ▷ 부드러운 움직임이 존재하는 경우 효과적이다.

      ▷ 서로 다른 방향으로 움직이는 물체의 경계 부위와 같은 경우 올바른 예측을 하지 못할 수 있다.


정리하기

 

1. 요약정리

모바일 환경에서의 비디오 통신

     ▷ 모바일 서비스가 원활히 이루어지려면 고효율의 부호화 기술, 계산 복잡도를 낮추는 기술에러 내성을 개선하는 기술이 필요하다.

      ▷ 이를 위한 움직임 기반 접근 방법은 다음과 같은 것들이 있다.

            ¤ 진보된 움직임 추정 기술

            ¤ 낮은 복잡도의 움직임 추정 기술

            ¤ 움직임 보상 에러 은닉 기술

 

효율적인 움직임 추정

      ▷ 블록 기반 움직임 추정을 위한 오차 에너지 측정 방법은 MSE, MAE, SAE 등이 있으며SAE가 계산 복잡도가 가장 낮다.

      ▷ 블록의 크기는 움직임 보상 성능과 밀접한 관계가 있다.

      ▷ H.264/AVC에서는 16x16, 16x8, 8x16, 8x8(8x8, 4x8, 8x4, 4x4) 등의 블록 크기로 움직임 보상을 할 수 있으며, 일반적으로 단조로운 영역에서는 큰 블록이, 복잡한 영역에서는 작은 블록이 적합하다.

      ▷ 움직임 탐색

            ¤ 완전 탐색은 움직임 보상의 효율은 높으나, 계산 복잡도가 너무 높다.

            ¤ TDL(Two-Dimensional Logarithmic) 탐색은 탐색 윈도우의 중앙에서 시작하여 정해진 간격으로 이동한 위치의 오차 에너지를 구하여 가장 작은 오차 에너지를 갖는 방향으로 이동하는 과정을 반복한다. 이 과정 중 중앙 위치의 오차 에너지가 가장 작으면 이동 간격을 반으로 줄이며, 이동 간격이 1이 되면 현 위치를 중심으로 8 이웃을 포함한 9 지점에 대한 오차 에너지가 가장 작은 지점을 이동 위치로 결정한다.

 

에러 내성 비디오 부호화 기술

      ▷ 에러의 유형은 열 잡음 등의 물리적 영향에 의한 랜덤 비트에러와 페이딩, 채널 간섭 등에 의해 연속적인 비트 구획의 손실이 발생하는 버스트 에러가 있다.

      ▷ 비디오 비트 스트림에서는 예측 부호화 및 가변길이 부호화의 영향으로 랜덤 비트 에러도 버스트 에러와 동등한 효과를 낼 수 있다.

      ▷ 이러한 에러는 시간적/공간적으로 전파될 수 있다.

      ▷ 에러의 검출은 패킷의 헤더 정보, 부가된 패리티 정보, 문법 또는 문맥 위반의 검출, 자연 비디오 신호의 일반적 특성 등을 이용하여 검출할 수 있다.

      ▷ 예방적 에러 내성 기술은 부호기가 주된 역할을 하며, 비디오 비트 스트림에 적절한 양의 여분 데이터를 추가한다.

      ▷ 에러 은닉 기술은 복호기가 주된 역할을 하며, 주관적으로 허용할 만한 원본 데이터에 대한 근사 화면을 만들어 냄으로써 에러를 감춘다.

 

2. 참고자료

Thomas Wiegand, Gary J. Sullivan, "Overview of the H.264/AVC Video Coding Standard," IEEE Tran. Circuits Syst. Video Technol., Vol.13, No.7, pp.560-576, July 2003.

Mohammed E. Al-Mualla, et al, Video Coding for Mobile Communications, Academic Press, 2002.

정제창 역, H.264/AVC 비디오 압축 표준, 홍릉과학출판사, 2005.