GeForce 16 및 20 계열에는 튜링 코어와 함께 7세대 NVENC가 적용되어있다. 7세대는 6세대 NVENC에 비해 눈에 띄는 성능 향상을 자랑했었다. HEVC HW 인코딩이 드디어 x264를 능가(x265가 아니고...)하는 성능을 보여준 것이다. 7세대 NVENC는 훌륭한 인코더임은 분명하지만, 여전히 성능이 향상될 여지가 있다. x265와 비교 결과를 보면, HEVC의 성능을 완벽하게 발휘할 수준의 인코더는 되지 못한 것이다. GeForce 30 시리즈가 나올 때 내심 기대했던 것이 NVENC의 업데이트였다. 7세대 향상폭의 절반만 구현해도 어마어마한 결과를 보여줄 거라 생각했기 때문이다. 특별한 기능이 추가되지 않더라도, 알고리즘 개선으로 효율이 높아질 수도 있고... 하지만, 발표 결과를..
2020/02/03 - Paint.NET 용 자유 변형(Free Transform) 플러그인 공개 이전 글을 통해 공개한 자유 변형 플러그인을 만들어가는 삽질기를 간략하게 정리해본다. 1. 플러그인 개발 환경 플러그인은 Paint.NET용 플러그인 개발의 영원한 지존 CodeLab으로 일단 틀을 잡고 시작한다. CodeLab 하나만으로도 플러그인 전체를 완전하게 만들 수도 있을 정도로 파워풀한 도구이다. 게다가, CodeLab은 이 소스를 VS에서 개발 가능하도록 변경해주는 기능도 제공한다. 이렇게 할 때 가장 중요한 장점은 완벽한 수준의 디버깅이 가능하다는 점. 2. 수학적 배경: Homography 자유변형 알고리즘은 간단하게 말해 Homography 하나만 구현하면 된다. OpenCV에서도 이 내용..
지난 추가 시험 이후 GTX1660을 를 새로 장만했다. 또, 지인이 라이젠 3400G를 구매해서 AMD의 HW 인코더인 AMF도 추가적인 테스트를 할 수 있게 되었다. 한편으로는 ffmpeg에서 AMD의 AMF 등 HW 인코더를 지원하는 부분이 안정화되고 있다. 그래서 아예 제대로 테스트 해보기로 했다. 이번에도 테스트 소스는 이전과 동일한 sintel. 공식적으로는 GTX1050Ti의 후계자는 GTX1650이다. 그런데, 자료들을 뒤져보니 코어만 튜링이고 nvenc는 1050Ti와 동일하며, 새로운 nvenc 코어는 1660부터 적용되었다. 일단 전통의(?) H.264 인코딩 결과. 당연하게도(?) x264의 용량 대비 품질이 제일 높고, 인텔 퀵싱크 비디오(이하 qsv)가 이와 거의 동일한 수준이다..
이전 글(소소한 업그레이드 실시)에서 얘기했듯이 새로운 NAS와 새로운 PC 환경을 구축했다. 지난 포스팅(ffmpeg용 H.264/HEVC 인코더 품질/성능 비교)들에서 진행한 시험의 추가시험을 간단하게 진행했다. 1. AMD PC 환경에서의 비디오 하드웨어 인코딩은 사실상 인텔 qsv와 엔비디아 nvenc 외엔 다른 대안이 없다. 그런데, 이 판에서 왕년에 잘 나가던 AMD는 현재 어떤 상태인지 확인해보기로 했다. 그런데, 이번에 지른 라이젠 5 2600에는 그래픽 코어가 포함되어 있지 않다. 마침 주변에 라이젠 5 2400G가 있어 예전 테스트와 유사한 테스트를 해볼 수 있었다. ffmpeg -i sintel.mkv -c:v h264_amf -profile main -quality quality -..
2. 4K 가. H.264 4K 역시 1080P와 동일하게 FFmpeg 가이드에 언급된 x264의 CRF를 기준으로 처리하기로 했다. 기준으로 삼은 x264의 CRF는 역시 이전과 동일하게 17, 23, 25. 마찬가지로 열심히 반복해서 확인해보니 x264는 4K 소스에 대해 각각 49.77, 46.23, 45.09의 PSNR이 도출됐다. 다시 말하면, 4K 영상에 대해서 Q 값은 PSNR이 49 이상이면 거의 무손실, 46 정도면 충분히 양호하며 45 이상이면 사용할만한 품질로 이해할 수 있다는 것. 엔비디아의 솔루션인 nvenc로 인코딩한 결과는 아래와 같다. H.264 역시 x264에 비해 유사한 품질에 대해 대략 20% 정도 큰 파일을 생성해준다. 그리고, 여기서도 preset에 무관하게 결과 파..
1. 1080p 가. H.264 FFmpeg의 가이드에 따르면 x264로 인코딩하는 경우 CRF(Constant Rate Factor)가 17~18일 때 무손실에 가깝다고 한다. 또한, 충분히 양호한 품질을 원하면 CRF을 23으로 하면 되며, 사용할만한 범위는 17~28 이내라고 한다. 그렇다면 이 값들로 동영상을 인코딩 시의 PSNR을 확인하면 다른 인코더에 적용할만한 CRF(또는 이에 준하는 값)을 역셈할 수 있다. 그래서 돌렸다. 열심히 반복해서. 우선 확인해야 할 지점은 x264가 가이드에서 얘기한 Q(CRF)로 인코딩시 어떤 정도의 PSNR을 보여주는지 하는 점이다. 샘플 영상 기준으로 볼 때, PSNR이 48dB 이상이면 무손실로 봐도 무방할 것 같다. 기본값인 Q=23으로 인코딩 시에는 4..
2018/02/04 - ffmpeg을 이용한 HW 비디오 인코딩 테스트 결과 0. 들어가기에 앞서 동영상 포맷의 사실상 표준이 H.264에서 HEVC로 이동하려 하지만, 한편으론 여전히 더 대중적인 쪽은 H.264이다. 온라인 방송용 앱이나 동영상 인코더들은 이 포맷들로 영상을 인코딩하는데, 어떤 것이 최선인지 궁금해졌다. 손쉽게(?) 구할 수 있는 S/W 기반 인코더인 x264/x265와 인텔 quicksync(이하 qsv), nvidia의 nvenc를 활용하여 다양한 조건에서 영상을 인코딩해보고 성능을 비교해보고 싶어졌다. 1. 테스트 영상 Durian Project로 만들어진 단편 애니메이션 Sintel의 일부를 사용하여 테스트를 진행했다. 다섯 가지 해상도의 포맷으로 공개했는데, 이 중 BluRa..
2017/11/05 - 가장 빠른 iDevice용 동영상 변환기 iTrans v15.1 공개 ffmpeg으로 동영상을 인코딩할 때는 기본적으로 SW만을 사용한다.HW 인코딩을 자동으로 사용하는 줄 알았는데, 확인해보니 역시 그럴 리가 없없다… ffmpeg에서 HW 인코딩을 하는 방법에 대해선 ffmpeg 홈페이지를 뒤지면 많은 정보를 확인할 수 있다. 윈도우 용 ffmpeg 빌드의 대표주자인 Zeranoe 님 빌드에선 NVENC, Direct 3D 11, Direct 3D 9, 인텔 QSV 등을 지원한다. C:\bluenlive>ffmpeg -hwaccels ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers built with gcc ..
TIFF에 포함된 lossless JPEG을 읽어서 변환할 수 있겠냐는 질문을 받았다.모 장비에서 생성하는 엑스레이 파일이 그 포맷인 것 같았다. 이미 소스가 공개된 JPEG 바닥에 불가능한 건 없겠지만, 찾아보니 뭔가 이상한 점이 있었다.lossless JPEG? 이거 적용한 파일을 내가 본 적이나 있었나? Arithmetic coded JPEG보다도 더 희귀한 존재 아니었나?공부할 때나 들었던 전설 속의 존재 아니었나? 다행히 구글링을 통해 누군가가 이미 libjpeg 6b를 기준으로 lossless-jpeg를 지원하는 패치를 만들었다는 것을 확인했다.아이고 감사하여라… 첫번째 단계는 TIFF에서 JPEG를 추출하는 것.TIFF 태그 중에 참고할 부분은 0x0103(Compress)와 0x0111(S..
2016/12/27 - PNG 파일의 크기를 극단적으로 줄여보자: ZopfliPNG 이전 포스트에서 얘기했듯, ZopfliPNG는 PNG 파일의 크기를 더욱 줄여주는 훌륭한 기술이다.참고로, pngquant와 ZopfliPNG를 함께 사용하면 파일의 크기를 더욱 줄여줄 수 있다. ZopfliPNG는 이전에 나왔던 optipng와 유사하게 무손실 압축만 다시해서 파일의 크기를 줄이는 방식이다.이 기술들이 대체 얼마나 이미지를 더 줄여주는지 확인해봤다. 우선, 임의의 이미지 두 개를 선정했다.하나는 891,817바이트 짜리, 하나는 9,743,137바이트 짜리. 선정 기준은 별 거 없이 대략 1MB 이하의 평범한 파일 하나랑 10MB에 가까운 거대한 파일 하나. 같은 이미지를 optipng와 ZopfliPN..
2016/12/27 - 구글이 공개한 두 가지 압축 기술: Zopfli와 Brotli 앞의 글에서 언급했듯이 Zopfli는 zip(deflate)과의 호환성을 그대로 유지하면서도 압축률을 향상시키는 알고리즘이다.그런데, 이 기술은 정작 쓰려고 하면 용도가 모호해진다. zip 파일의 용량을 줄이려면 차라리 다른 포맷(rar, 7-zip 등)을 이용하면 되니까 굳이 쓸 필요가 없기 때문이다. 즉, Zopfli는 반드시 deflate를 사용할 수 밖에 없는 환경에서만 유용하게 사용할 수 있는 것이다. 그런 환경이라면 가장 쉽게 볼 수 있는 것이 바로 PNG 파일이다. 사실, Google이 깃허브에 공개한 Zopfli 소스에는 ZopfliPNG 소스가 함께 포함되어 있다.즉, 적절하게 컴파일만 하면 PNG를 극..
얼마 전 MS 엣지 브라우저에 Brotli가 도입되어 20% 이상 빨라질 거라는 엄청난 기사가 떴다. 아니, 대체 저 기술은 얼마나 엄청나기에 브라우저가 20%나 빨라지는가?그보다 근본적으로 그렇게나 더 빨라질만한 여지가 있기는 한가? 결론부터 말하자면, 내용을 제대로 이해하지 못한 글쓴이가 원문을 과장해서 오독한 것이다. 0. 들어가기 전에… 디스크의 용량이 기하급수적으로 늘어나는 현재에도 데이터 압축은 무척 중요한 기술이다.서버의 네트워크 전송 부하를 줄이기 위해서 조금이라도 더 작은 파일을 만들어야 하기 때문이다. 이를 위해 모질라는 mozjpeg이라는 프로젝트를 통해 jpeg 파일의 크기를 줄이고 있기도 하다. 1. Zopfli Brotli를 얘기하려면 그 전에 Zopfli를 먼저 얘기해야 한다...
오디오 파일들을 모아서 아이폰에 넣다보면 관리가 좀 아리송해지는 지점이 나온다. 일단 태그다.아이폰은 파일명은 무시하고, 태그를 중심으로 오디오를 관리하는데, 소스가 서로 다른 경우에 태그가 꼬이는 경우가 허다하다.이런 경우에 가장 편하고 유용하게 쓸 수 있는 프로그램이 바로 Mp3tag다. 프로그램 이름은 비록 Mp3tag지만, 이 프로그램은 mp4 비디오/오디오의 태그도 깔끔하게 관리해준다.파일명에서 태그를 재구성할 수도 있으며, 태그를 이용해서 파일명을 일괄적으로 변경하는 것도 가능하다.커버아트 역시 손쉽게 변경하거나 추출할 수도 있다. 태그와 커버아트를 일괄적으로 변경하는 것도 물론 가능하다.게다가 이 프로그램은 무료다. 태그도 태그지만, 들을 때 거슬리는 건 음량이다.서로 다른 앨범들의 노래들을..
헤비메탈의 아이콘 메탈리카에서 최근(2016.11.18) 10집 앨범인 Hardwired... To Self-Destruct를 발표했다. 그리고, 앨범 홍보 차원으로 메탈리카 스타일의 로고를 생성해주는 사이트를 개설했다: Generate your own Metallica logo.글자를 입력하면 로고를 생성해주고, SNS에 올리거나 다운받을 수도 있다.아래는 이 사이트에서 만들어본 샘플… 덧1. 해당 앨범의 타이틀 곡 뮤직비디오가 아래와 같이 유튜브에 공개돼 있다… 덧2. 본 앨범은 애플 뮤직에도 올라와있다…
2016/10/30 - Depixelizing Pixel Art(픽셀 제거 픽셀 아트) 소개 이전 포스팅에서 소개했던 Depixelizing Pixel Art는 상당한 고품질의 픽셀 아트 확대 능력을 보여줬다. 벡터 포맷인 svg로 만들어주기 때문에 사실상 무한히 큰 파일을 만들 수도 있다. 하지만, 너무 느리다… 찾아보다 유사한 품질의 비트맵 이미지를 생성하는 xBRZ라는 알고리즘을 찾았다. 최대 6배까지 확대를 해주는 알고리즘으로, 아래와 같은 이미지를… 거의 실시간으로 아래와 같이 확대해준다. Depixelizing Pixel Art의 결과와 비교해보면 상당히 비슷하다는 것을 느낄 수 있다. 물론, 전술했듯이 이 쪽은 벡터라 얼마든지 더 크기를 키울 수 있다는 차이가 있다. xBRZ은 source ..
이전 글에서 계속… 7. #define VALENCE 수정 pixel_grid.cpp 파일에 아래와 같이 VALENCE()가 정의되어 있다. #define VALENCE(neighbor_mask) __builtin_popcount(neighbor_mask) 이를 아래와 같이 수정한다. #ifdef _MSC_VER #include #define VALENCE(neighbor_mask) __popcnt(neighbor_mask) #else #define VALENCE(neighbor_mask) __builtin_popcount(neighbor_mask) #endif 8. boost lib 폴더 지정 Solution Explorer - depixelize의 설정에서 Library Directories에 아래 ..
이전 글에서 계속… 4. depixelize 컴파일 앞에서도 썼듯이, 몇 가지 튜닝을 해야 정상적으로 컴파일할 수 있다.우선 다운받은 파일을 적절한 폴더에서 압축을 풀면 아래와 같은 구성을 볼 수 있다. 여기서 우선 src 폴더에 저장된 CMakeLists.txt 파일에 Boost 및 OpenCV의 폴더 정보를 추가하여 아래와 같이 수정한다. cmake_minimum_required(VERSION 2.8) project(depixelize) set(BOOST_ROOT c:/_lib/boost_1_62_0) set(BOOST_INCLUDE_DIRS c:/_lib/boost_1_62_0/boost) set(BOOST_LIBRARYDIR c:/_lib/boost_1_62_0/stage/win32/lib) se..
2016/10/30 - Depixelizing Pixel Art(픽셀 제거 픽셀 아트) 소개 앞의 포스트에서 소개한 Depixelizing Pixel Art는 실제로 논문을 읽은 뒤 구현하기엔 쉽지가 않다.뒤져보니 Cary Yang이라는 분께서 C++로 구현한 결과를 깃허브에 올려두셨다. 그런데, 막상 이 소스를 Visual Studio 2015로 컴파일해보려니 쉽지 않다.Boost와 OpenCV를 사용해서 작성되었기 때문에 이를 미리 설치해야 하고, 몇 가지 튜닝이 필요하기 때문이다. 필요한 도구는 Boost, OpenCV 그리고, cmake.우선 각각을 다음 위치에서 다운받는다. - cyang1 / depixelize (github) - Boost 1.62.0 - OpenCV (github)- cma..
이미지를 리사이징할 때 사용하는 필터들에는 다양한 종류가 있다.그 중에서도 가장 안 쓰이는 녀석은 Nearest Neighborhood. 하지만, 이게 특별히 쓰이는 경우가 있는데, 바로 레트로 게임을 고해상도에서 돌리는 경우… 그런데, 이쪽을 찾아보시던 한 트친님이 재미난 정보를 알려주셨다. 픽셀 제거 픽셀 아트(Depixelizing Pixel Art)라는 알고리즘이 있다는 것. 레트로 게임의 저해상도 이미지를 고해상도로 리사이징하는데, 무려 아래와 같은 결과를 만들 수 있다는 것이다. 위 링크의 논문에 상세하게 설명이 되어있는데, 개략의 내용은 아래와 같다.연결되는 픽셀을 이어서 그래프를 그린 뒤 예쁘게 재구성하는 것. 이를 이용하여 슈퍼 마리오 게임을 재구성한 동영상이 유튜브에 올라와있다.
2년 쯤 전에 썼던 포스트에 이은 포스팅 1. ffmpeg는 내부적으로 pcm_f32le를 사용 기본적으로 ffmpeg를 사용해 AAC로 변환할 때는 아래와 같이 사용한다. ffmpeg -i test.mkv -vn -acodec pcm_s16le -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac 그런데, ffmpeg은 내부적으로 pcm_f32le(32비트 부동소수점)을 사용한다. 특히, 추가로 오디오 필터를 적용할 때는 pcm_f32le를 사용하는 것이 좋다. 더불어, neroAacEnc는 pcm_f32le를 잘 인식한다. 즉, 아래와 같이 사용하는 것이 여러모로 더 낫다. ffmpeg -i test.mkv -vn -acodec pcm_f32le -f..
GIF 포맷이 세상에 나온지도 거의 30년이 되어간다.특허 문제 등으로 시끄럽기도 했지만, 이제 관련 특허도 다 기간이 만료되고, 누구나 쓸 수 있는 포맷이 되었다. 시간이 지나면서 PNG가 GIF를 거의 대체할 수 있고, 유일하게 남은 Animated GIF 기능도 대체 포맷들이 많이 나왔다.하지만, 그래도 GIF는 여전히 많이 쓰이고 있고, 파일의 크기를 더 줄일 수 있는 방법들도 연구되고 있다. 이러한 연구 중 가장 대표적인 프로젝트는 gifsicle이다. 특히 Animated GIF에 대해 프레임 간 압축시 이전 프레임과 겹치는 부분을 비움으로서 시간적 압축 개념을 추가한 것이다.소스는 Gitub에 공개하고 있음. 여기에 화질을 조금 더 떨어뜨리는 기능을 추가해서 파일의 크기를 더 줄이는 프로젝트..
jpeg 파일을 생성하는 과정은 아래와 같다. 1992년 9월에 나온 기술이라 위의 과정은 이미 기술적으로 충분히 안정화된 상태.그런데, 이 기능 중에 거의 사용되지 않는 부분이 하나 있다. 위 그림 하단 가운데에 보이는 Arithmetic Coding(산술 부호화[코딩]). 흔히들 jpeg 압축의 마지막 단계는 허프만 코딩이라고 알고 있는데, 원론적으로는 반만 맞는 것이다.마지막 단계는 엔트로피 코딩이며, 엔트로피 코딩으로 허프만 코딩 외에 산술 코딩도 사용할 수 있다. 산술 코딩은 허프만 코딩에 비해 압축률이 높고 연산이 복잡하여 속도가 느리다. 속도보다 더 큰 문제는 이 산술 코딩이 꽤 많은 특허가 걸려있었다는 것.무려 11개의 특허가 걸려있는데다 반드시 구현해야 되는 게 아니라서 그동안 거의 구현..
새로운 이미지 포맷의 개발이 계속 시도되고 있지만, 여전히 이미지 표준은 jpeg와 png가 대세다.그런데, 손실 압축인 jpeg와 달리 png는 비손실 압축이기 때문에 파일의 크기를 줄이는 것이 쉽지 않다.(이를 해결하기 위해 손실 압축 개념을 도입한 pngquant가 있고, 굉장한 품질과 성능을 보여준다) png는 마지막 단계에서 zlib를 이용해서 압축을 하는데, 파라미터를 통해 압축의 정도을 조정할 수 있다.즉, 최대압축(9)을 지정하면 동일한 이미지를 조금 더 작은 크기에 저장할 수 있는 것이다. 그런데, zlib는 워낙에 널리 사용되는 라이브러리라 많은 변형이 있고, 이들을 통해 더 나은 결과를 얻을 수 있다.대표적인 zlib의 변형은 아래와 같다. - jtkukunas / zlib: Inte..
Visual Studio에서는 OpenMP 외에도 자동 병렬화(Auto-Parallelizer)를 지원한다. OpenMP보다는 좀 더 사용하기는 쉬운 편이고, 사용 가능 범위는 좀 더 제한적인 느낌. OpenMP는 아래와 같이 적용할 수 있고, #pragma omp parallel for for (int i = 0; i < 256; i++) { iP[i] = i; } 자동 병렬화는 아래와 같이 적용할 수 있다. #pragma loop(hint_parallel(0)) for (int i = 0; i < 256; i++) { iP[i] = i; } 즉, 사용 자체는 그리 어렵지 않다. 사용할 수 없는 조건들을 배제하는 게 좀 번잡할 뿐. 이미지 20장을 일괄적으로 리샘플링하는 코드를 통해서 둘의 성능을 비교..
GIF 포맷은 예전에 비해 사용량이 줄었지만, 여전히 많이 사용되는 포맷이다. 비록 단일 프레임 이미지는 JPEG/PNG에 밀리긴 했지만, 여러 프레임으로 구성된 GIF는 짤방이란 별명으로 널리 사용되고 있다. GIF 포맷의 기본적 특징이자 단점은 256색의 팔레트를 사용한다는 점이다.이로 인한 화질의 저하는 어쩔 수 없는 약점인데, GIF의 특성들을 묘하게 조합해서 트루컬러를 구현하는 방법이 있다. 아래처럼 여러장의 프레임으로 구성하여, 각 프레임에 충분한 투명영역을 지정해서 겹치면 트루컬러 GIF를 얻을 수 있다. 이 이미지의 각 프레임을 추출하면 아래와 같다.무려 29개의 프레임으로 구성된 이미지인 것이다. 모든 프레임을 한 장에 합친 결과는 아래와 같다.
다양한 이미지 처리 프로그램들이 있다.그 중에도 명령행 계열의 지존은 물론 ImageMagick. ImageMagick은 다양한 이미지 포맷에 대하여 다양한 필터 기능을 적용할 수 있다.다양한 필터 중에서도 가장 널리 쓰이는 중요한 필터는 물론 리샘플링. IM에서는 어떤 리샘플링 필터를 기본으로 할 것인가를 충실히 분석했다.물론, 선택은 사용자의 몫이라는 점을 대전제를 하고. 이 분석의 결론은 대략 아래와 같다. 1. 확대 다양한 필터를을 비교한 결과 기본으로 선택된 것은 Mitchell-Netravali 필터.이 필터는 B, C의 값을 일정 범위 내에서 가변적으로 지정할 수 있는데, 특히 원래 논문의 기본값인 ⅓, ⅓을 선택했다. 선정의 이유는 다른 필터들에 비해 확대 시에 아티팩트가 가장 적고, 가장..
libjpeg에서 이미지를 읽어들이는 부분의 코드(example.c)는 아래와 같다. /* Here we use the library's state variable cinfo.output_scanline as the * loop counter, so that we don't have to keep track ourselves. */ while (cinfo.output_scanline < cinfo.output_height) { /* jpeg_read_scanlines expects an array of pointers to scanlines. * Here the array is only one element long, but you could ask for * more than one scanline a..
이미지에 그라데이션을 넣을 때 선형으로 처리하면 왠지 부자연스러워 보인다. 경계선 주변의 흰 색이 왠지 튀어보이는데, 사실 색은 아무런 문제가 없다. 그냥 인간 인지력의 한계… 이런 현상은 저런 단색 뿐만 아니라 두 이미지를 섞을(?) 때에도 비슷하게 나타난다. 왠지 부자연스러워보인다[…] 이 경계선을 부드럽게 하는 방법을 알아보니 가장 손쉬운(?) 방법은 로지스틱 함수. \(f(x) = \frac{L}{1+e^{-k(x-x_0)}}\) 대략 이렇게 생긴 분인데, 결과를 그래프로 나타내면 아래와 같이 나온다. 이 식을 조금만 변형해서 그라데이션에 적용하면 아래와 같이 자연스러운 결과를 볼 수 있다.
윈도우에서 FFmpeg을 컴파일하려면 Visual Studio에서 하는 방법과 MinGW의 gcc로 컴파일하는 방법이 있다. Visual Studio를 사용하는 방법이 쉽다고 되어있는데, 막상 해보니 잘 되지 않고… 윈도우 환경에서 gcc로 컴파일 하려면 MinGW와 yasm이 필요하다. 1. MinGW 다운 및 설치 MinGW를 설치하려면 여기에서 mingw-get-setup.exe를 다운받아 실행하면 된다. 설치 화면에서 mingw32-base와 msys-base를 선택한 뒤에 Installation - Apply Changes를 클릭하면 설치가 진행된다. 설치가 되는 기본 폴더의 위치는 c:\MinGW이다. 2. pr.exe 설치 컴파일할 때 pr.exe가 필요한데, 위에서 설치한 내용에선 이 파일..
더 좋은 화질/음질의 영상/음성 포맷은 이 바닥 관련자에게는 영원한 목표일 것이다.그런데, 문득 생각한 10년쯤 된 사기질 하나가 생각났다.이름하여 NV Codec. 이제는 없어져버린 네빌소프트(www.nevilsoft.com)란 곳에서 2004년 2월 경 '곧 정식버전을 발표하겠다'며 사기 친 코덱이었다.아마도 투자자를 끌어모은 뒤 먹튀를 하겠다는 목표로 구성된 사기였던 것 같다. 네빌 쪽에서 얘기한 이 코덱의 장점(?)들은 대략 아래와 같았다. 1. Visual 무손실 압축 기법으로 압축률은 4배 이상 향상시키며 손실률은 0.5db 이내 2. 비디오/오디오 각각 별도로 적용 가능함 3. 독립 코덱으로도 동작하고 기존 코덱에 add-on도 되는 획기적인 방식 4. add-on시 심지어 메인 코덱의 점유..