베가스에서 동영상이 열리지 않을 때 베가스 H264 코덱 에러 해결 방법
동영상 코덱에서의 error resilience는 동영상 전송 중 일부 정보가 손실되었을때 이를 예방처리하기 위한 여러 테크닉들을 통칭하는 말입니다. 코덱마다. 다르지만 결국 컨셉들은 비슷합니다. 중요한 정보들을 한 곳에 담지 않고 여러 곳에 분산해서 담아서 일부 손실되어도 영향이 적도록 만든다든가, 주변 정보를 활용하여 손실된 정보를 복구한다든가 등의 방법들이 주로 쓰인다. 본 글에서는 내가 공부한 H.264 코덱을 기준으로 작성하였습니다.
프레임을 여러 개의 슬라이스로 쪼개서 코딩하는 방식입니다. Intra prediction을 같은 슬라이스 내의 macroblock끼리만 함으로써 슬라이스 간에 디펜던시를 없앤다. 즉 한 슬라이스가 망가졌을때 다른 슬라이스에 영향을 주지 않도록 한 것입니다.
1 Codec Overview 코덱 압축Compression 종류들
Lossy 압축하면서 원본이 일부 탈락되어 복원시 처음과 다른상태인 압축방법 ex) 음성코덱(G.711/ MPEG/h.264 …) Lossless 위에서 배웠던 3개의 알고리즘이 Lossless에 해당됨 압축하더라도 잃어버리는 정보가 1도 없음 🤔그럼 코덱은 Lossless/ Lossy중 어느것에 해당될까? 정답은…!!! 둘다. 가능하다는 것! 그럼 Lossy 적용시, 뭘 삭제하는거지? 이 얘기를 하기 위해선 기준인 “표준”에 대한 이야기를 해야하고, 표준을 만드는 민간사업체들 단체인 “협회”에 대한 이야기를 해야합니다.
Data slic Partitioning
슬라이스를 통째로 보내지 않고 또 쪼개는 테크닉입니다. Partition A, B, C로 쪼개는데, partition A에 가장 중요한 정보들 슬라이스 헤더, 모션 벡터, intra prediction mode 등을 담고 B와 C엔 덜 중요한 정보 residuals를 담는다. 그러면 B, C는 손실되어도 동영상 퀄리티에 영향이 적다.
Error concealment
위의 1,2,3은 인코딩 단계에서 활용하는 손실에 잘 대응하기 위한 예방책이었다면, 이건 손실이 발생했을 때 디코딩 단계에서 어떠한 방법으로 처리할지에 대한 알고리즘입니다. 간단하게 말하면 주변 정보를 활용Intrapolation Extrapolation하여 손실된 부분의 정보를 예측하는 방식입니다. 옛날 옛적에 많은 연구들이 진행되어서 꽤 여러가지 알고리즘들이 존재하는데, 상용 코덱 소프트웨어들에서 주로 쓰이는 건 아주 심플한 방식입니다.
Reference
자주 묻는 질문
1 Codec Overview 코덱 압축Compression
Lossy 압축하면서 원본이 일부 탈락되어 복원시 처음과 다른상태인 압축방법 ex) 음성코덱(G. 궁금한 사항은 본문을 참고하시기 바랍니다.
Data slic
슬라이스를 통째로 보내지 않고 또 쪼개는 테크닉입니다. 더 알고싶으시면 본문을 클릭해주세요.
Error
위의 1,2,3은 인코딩 단계에서 활용하는 손실에 잘 대응하기 위한 예방책이었다면, 이건 손실이 발생했을 때 디코딩 단계에서 어떠한 방법으로 처리할지에 대한 알고리즘입니다. 좀 더 구체적인 사항은 본문을 참고해 주세요.