GOP('지오피', 또는 '곱'으로 읽는다)에 대해서 조금이라도 이해를 하고 있어야, HDV, AVCHD편집할 때 불편한 점을 극복할 수 있습니다. 이론적인 배경이 꼭 필요한 것은 아니지만, 모르는 것과 아는 것의 차이는 실로 엄청난 결과물을 가져오기도 합니다.
한번 읽어 보는 것만으로도 많은 도움이 될 것이라 생각합니다.
GOP(Group of Pictures)란?
MPEG 비디오 압축 기술을 위한 영상 프레임의 집합을 말한다.
GOP 내에는 3종류의 프레임 존재하는데, I-frame, P-frame, B-frame으로 부른다.
I-frame : Intra Frame (Intra-coded)
P-frame : Prediction (predictive-coded)
B-frame : Bi-directionally (predictive-coded)
GOP내 프레임간 참조 모델
I-frame은 예측을 사용하지 않고 입력 신호 그대로 저장한 프레임이다. 하나의 완전한 그림을 구성하기 위한 데이터를 가지고 있으며, JPEG와 유사한 방법으로 압축된다.
P-frame은 현재의 프레임과 앞의 I-frame과의 차이를 관찰하여 만들어진 예측 정보(하나의 완전한 그림이 아니다)만을 포함한다. 따라서 I-frame보다 대단히 적은 데이터를 포함한다. P-frame을 보기 위해서는 하나의 완전한 MPEG-2 GOP가 디코드 되어야 한다.
B-frame은 MPEG 신호에서 사용되는 쌍방향 예측 프레임이다. 앞의 프레임과 다음 프레임 간의 차이를 평가함으로써 구성된다. 단지 예측 정보만 포함하므로 완전한 그림을 만들지 못한다. P-frame보다 적은 데이터를 갖는다. 그러나 원래의 화상을 보려면 MPEG 프레임의 전체 시퀀스가 필요하다.
Long GOP 프레임별 저장되는 데이터량(5D Mark II 동영상)
적색: 인트라프레임, 청색: 예측 프레임(B,P 프레임 확인안됨)
GOP 길이
하나의 GOP 길이는 임의다. 하나의 GOP에는 반드시 한 장 또는 여러장의 I-frame을 포함한다. 랜덤 액세스, 고속 재생, 역방향 재생을 필요로 하는 경우에서는 상대적으로 짧은 GOP를 이용하는 것이 좋다. GOP는 장면의 이어지거나 움직임이 없는 곳 부터 시작하는 것이 좋다. 연속하는 B-frame의 수는 변경이 가능하다. I-frame만의 존재하는 것도 허용된다.
TV전송에서 PAL(25 fps) 신호에서는 대표적으로 12 frame이고, NTSC(30 fps) 신호에서는 15 frame이다. (즉, 시간으로 약 1/2초) 이런 프레임의 그룹을 "Long GOP"라고 한다. MPEG 규격을 따르는 NTSC용 HDV나 AVCHD에서도 15 frame 이다. JVC의 ProHD 카메라나 DVCPRO HD 포맷을 사용하는 일부 카메라에서는 6 frame 단위로 그룹하기도 하는데 이를 "six-frame GOP" 또는 "short GOP"라고 한다.
MPEG에서의 프레임 형식
i-frame(intra 프레임)에서, 접두사 "intra"는 '내부' 또는 '안'이라는 의미이다. intra 프레임 또는 i-frame은 그 프레임 내로부터의 정보만을 사용하여 부호화 되는 프레임이다. 달리 말하면, 다른 프레임의 참조 정보 없이, 공간적으로 부호화 되는, 즉 시간적 압축이 아닌 프레임이다. i-frame의 코딩은 JPEG의 이미지 코딩이나, M-JPEG의 프레임과 비슷하지만 동일하지는 않다.
Non-intra 프레임(P-frame, B-frame)은 외부의 최근 프레임, 즉 이미 부호화된 프레임으로부터의 정보를 사용한다. 예측(Predicted)프레임과 양뱡향 예측(Bi-directional)프레임의 두 종류가 있다. 아래 그림의 일련의 이미지로 설명한다.
그림에서 이미지 A는 i-frame으로 부호화하는데, 이것은 그 프레임 이외의 외부의 어떤 데이터도 참고하지 않고, 전체적으로 공간적으로 부호화되는 것을 의미한다. 프레임이 처리되는 동안, 부호화된 데이터는 디코더에 보내어져 디코딩되고, 재구성된 이미지는 메모리에 저장된다. 이미지 C는 메모리에 저장된 A를 참조하여 P-frame으로 부호화되고, 이미지 B는 A와 C를 참조 하여 부호화 된다.
편집을 위한 Intra GOP의 변환
동영상을 편집할 때나 재생할때는 GOP내의 모든 프레임들을 전부 I-frame으로 변환(decoding)하는 작업을 거치게 되는데, 이때 많은 CPU 리소스를 필요로 한다. 따라서 편집하기 전에 모든 프레임을 I-frame으로 변환해서 작업하면 편집속도를 향상시킬 수 있다. 또한 합성이나 색보정 등의 작업 시에도 I-frame으로 변환하여 작업 할 경우 더 빠르고 정확하게 할 수 있다.
전문 장비가 없는 상태에서 Long GOP를 I-frame만 갖는 Intra GOP로 변환하는 방법은 Intra Frame 코덱으로 재인코딩 함으로써 가능하다. 압축 코덱은 Motion JPEG, I-frame만 갖는 MPEG2, DV, JPEG2000, Cineform HD, Canopus HQ, Proress, NDxHD 등이 있다. 이들 코덱은 상호 참조하지 않는 독립적인 하나의 프레임씩 압축하기 때문에 용량이 증가된다. 때로는 TARGA, TIFF 등의 이미지 파일을 사용하기도 한다.
Cineform HD 코덱으로 변환된 5D Mark II 영상
(모든 프레임이 인트라 프레임으로 변환되고, 프레임의 최고 크기도 503KB에서 729KB로 증가했다.)
GOP 편집은 저장 장치의 용량에 제한을 받는 경우에 적합하다. 그러나 편집시 GOP내의 각 프레임들을 참조하면서 디코딩해야 하기 때문에 CPU 부하가 크고, 실시간 편집을 위해서는 고속의 CPU가 필요하다. Intra 편집은 각 프레임을 마치 JPEG처럼 압축시켜 놓았기 때문에 GOP 편집처럼 상호 참조하지 않아 저사양의 CPU에서도 가능하다. 단점은 데이터의 저장 공간이 10~100배까지 필요하다. 무압축은 프레임을 전혀 압축하지 않은 상태를 말하는데 압축을 하지 않았기 때문에 디코딩조차 할 필요가 없다. 그러나 압축되지 않은 방대한 양의 데이터를 실시간으로 처리하기 위해서는 고속의 대용량 저장장치가 필요하다.
참고 자료
소니 방송용어사전 : Long GOP
Beyond HDV: AVCHD High-definition Compression
Much more about 720p24 HDV, Part 2
Wikipedia : Group of Pictures
The truth about codecs, Part II: putting it all together, and what it means to you
댓글
댓글 쓰기