최신 코덱인 AV1 현황.

연습 2016. 12. 24. 04:03

 구글이 VP10을 제작하여, 2016년 12월쯤에 제공해주겠다. 라는 소문이 있었다.

 하지만, 여기에서 계속 찾아봐도 결과가 안나오고있다.(저용량 고화질 영상이라고 가지고 나오던게 목적이다.)


 여기서 스트리밍에서 현재 VP9이나, H.264을 주로 사용하고 있다.(H.265는 아직까지 지원하는게 덜하고 있기 때문에...)


 그래서 현재 코덱 싸움이 아직까지 나오고 있다.


 하지만, H.265는 H.264와 알고리즘이 거진 같이하고 있다.

 그래서 H.265의 단점은 H.264의 단점을 그대로 가지고 있다.


 그것은 바로 계단 현상이 생긴하는건데. AV1는 상대적으로 그렇게 티가 나지 않는다.


 VP9은 화질이 아직까지 안 좋은데. 거기에서도 계단형식의 문제가 조금 보여졌다.


 그래서 필자는 Daala을 한번 보니. 상대적으로 선 같은거만 제외하면 화질이 좋은걸 확인 했다.


 이것으로 Daala 코덱이 더 나을 것 같다. 라고 생각하고 있었는데. Daala와 VP10에서 혼합이 되엇 AV1이라는 단체로 코덱을 제작하고 있다는 소문을 들었다.(이것을 접한게 약 6~7월쯤인 것 같다.)


 AV1과 H.264/H.265을 비교한 글이 있다.

 http://www.golem.de/news/freier-videocodec-av1-was-der-vp9-nachfolger-leisten-kann-1612-125121.html (2016-12-24일날 검색, 2016-12-22날 제작된 글)


 확실히 AV1은 H.264/H.265에 비해선 계단 현상이 안보인다.(단, 선도 안 보인다.)


 이제, 문제는 저용량이 되어 주는가? 에 대해서 고민을 하게 된다.


 참고로 H.264로 코덱을 만들어둔 영상에서 AV1으로 바꾸면, 저용량에 고화질이 되지 않는다는 점만 명시하자.


 차후에 인공지능이 발달하면, 영상에 대한 복원 기술이 발달을 할 수 있을진 모르겠다.(흑백을 컬러로 화질이 깨진 것에 대한 유사성을 발견으로 유추하는 행위)


 하지만, 일단 그런 데이터를 잘 저장해둬야 된다는 것이 중요하고 그것이 곧 압축의 기술이 될 것이다.

'연습' 카테고리의 다른 글

7z 사용법 -압축방법-  (0) 2017.01.02
CD-Rom eject(CD롬 열기 소스) 소스  (0) 2017.01.01
powershell 비프음 발생시키기.  (0) 2016.11.15
구글 드라이브 검색 사용법  (0) 2016.11.14
GSplit 프로그램.  (0) 2016.11.13
Posted by JunkMam
,
참조 링크 : https://blogs.technet.microsoft.com/heyscriptingguy/2013/09/21/powertip-use-powershell-to-send-beep-to-console/


 powershell을 사용하면서 완료된거 확인하기 위해서 beep을 사용할려고 한다.


 [console]::beep(Hz, millisecond) 형태로 처리하면 된다.


 외국에서는 이걸 가지고 스타워즈, 미션 임파서블 등을 연주하고 있다.


 powershell beep song을 참조 하면, C언어를 가지고 beep음을 실행 시키고, 그걸가지고 연주하는 영상이 있다.

'연습' 카테고리의 다른 글

CD-Rom eject(CD롬 열기 소스) 소스  (0) 2017.01.01
최신 코덱인 AV1 현황.  (0) 2016.12.24
구글 드라이브 검색 사용법  (0) 2016.11.14
GSplit 프로그램.  (0) 2016.11.13
javascript로 onclick 이벤트 발생시키기  (0) 2016.11.12
Posted by JunkMam
,

 내가 구글 포토스로 대량의 이미지 파일을 올리고 있는데,


 다음과 같이 검색하니 제대로 검색이 안되었다.


 이미지 파일명


 cd20161113.z01_0001.png

 cd20161113.z01_0002.png

 cd20161113.z01_0003.png

 cd20161113.z02_0001.png

 cd20161113.z02_0002.png

 cd20161113.z03_0001.png


 이렇게 있다면,


 cd20161113 라고 하면, 전체 다 검색이 되는데,


 cd20161113.z01

 이렇게 하면, .z01 때문인지 검색이 제대로 안되고, 없는 폴더. 라는게 계속 뜨게 되었다.


 여기서 title:을 사용하면, 파일 명으로 검색이 가능하게 된다.


 예) title:cd20161113.z01


 이렇게 하면, 이상없이 검색이 가능하며,


 cd20161113.z01_0001.png

 cd20161113.z01_0002.png


 이렇게 부분적으로 검색이 가능하다.


 포토스에서는 불가능하고, 구글 드라이브에서만 가능하다.


 이를 이용해서 포토스로 백업을 하고 검색할때, 구글 드라이브를 이용해서 다운 받는게 용이하다. 라고 볼 수 있을 것이다.


 참조한 링크 : https://support.google.com/drive/answer/2375114?hl=ko&ref_topic=2463645

Posted by JunkMam
,

GSplit 프로그램.

연습 2016. 11. 13. 22:00

 파일을 분할 처리하는 프로그램 GSplit프로그램을 소개하도록 하겠다.


 링크 : http://www.gdgsoft.com/gsplit/


 GSplit 동일한 파일을 분할하고, 해당 프로그램이 없어도 EXE파일을 생성해서 실행 파일로 분할을 처리하는 프로그램이다.(Self-Uniting)


 분할 했을때, CRC32등을 이용해서 분할 프로그램의 문제를 점검할 수도 있다.


 파일을 분할해야 할 경우는 거진 없을 경우도 있지만(대부분 분할 압축을 처리한다.)


 zip의 분할 압축과 유사한 것이므로, zip으로 분할하지 못할 경우에 사용하면 효율적일 것이다.


 CD/DVD/USB을 이용해서 바로 넣을 수도 있다.


 블로그에서도 사용을 할 수 있다.


 사용법이 간편하다. 라는 점이 있다.

Posted by JunkMam
,

 원본 링크 : http://yuuxxxx.hatenablog.com/entry/2013/09/20/224801

 참조 링크 : http://jo.centis1504.net/?p=1535


 

1
2
3
4
5
6
7
8
9
10
var linkElement=document.getElementById('link');
if/*@cc_on ! @*/ false ) {
    // IE
    linkElement.fireEvent("onclick");
else {
    // Others
    var event = document.createEvent("MouseEvents");
    event.initEvent("click"falsetrue);
    linkElement.dispatchEvent(event);
}
cs


 구글 포토스를 사용하면서 불편한 것이 올렸을때, 자동으로 삭제되어야 되는 경우와 구글 드라이브를 이용해서 사용한다고 해도 paperbak이라는 것의 자체가 대량의 파일이 발생하기 때문에 문제가 된다.


 그래서 javascript를 이용한 자동장치가 필요할 것 같아서 이렇게 기록을 한다.


 document.createEvent라는 것으로 이벤트를 발생시킨다.


 문서 링크 : https://developer.mozilla.org/ko/docs/Web/API/Document/createEvent


 createEvent("MouseEvents") 라는 것 자체가 마우스에 이벤트를 일으키는 용도로 쓰인다.


 다양한 이벤트가 있는데, KeyBoardEvent도 있다.


 initEvent라는 것은 이벤트의 종류를 정의하는 것이다.


 click이벤트를 가지고 있다는 것으로, 그외 자세한건 문서 링크를 참조하면 될 것이다.


 이것은 Click이벤트를 발생시키는 것으고, click말고 mouseup등 마우스의 이벤트 전체를 가지고 있다.

Posted by JunkMam
,

참조 링크 : http://snskshn.tistory.com/category/Windows/PowerShell

 프로그램 2개 이상이나, 작동하는 과정이 있는데, 이것에 대해서 문제가 없는지 확인 하기 위해서 프로그램 수행시간 측정이 필요해졌다.


 하지만, 이것에 대해서 관리하거나 처리하기 귀찮아서, powershell 자체에서 지원해주는게 없는지 검색해봤다.


 처리 방법은 measure-command라는 장치를 이용하면 된다.


 

1
2
3
4
5
6
7
8
bmeasure-command {
    $n=((Get-childItem -File ./*.bmp).name);
    for($i=0; $i -lt $n.length; $i++){
        $obj = $n[$i].Replace(".bmp",".webp");
        cwebp -progress -lossless -short $n[$i] -o ./WebP/$obj;
    }
}
 
cs


 이렇게 사용을 하면, webp에 대해서 시간을 측정 할 수 있게 된다.


 현재 포토스에 자동으로 올리는 장치가 없는지도 확인하는 중이다.

Posted by JunkMam
,

 webp을 이용한 quality가 10~100에서도 BMP으로 설정할 경우. 이상없이 처리가 되었다. 라는 특징을 갖는다.


 웃긴건 webp -lossless로 하거나 png가 webp -q 10~100에서 가장 용량이 적게 먹었다는 점이다.


 이걸 이용한다면, 엄청나게 변형이 되지 않는 한에서(MP4나 그런 동영상에서는 변형되었을때, 완전히 효과가 없어져버렸어 동영상으로는 관리를 할 수가 없다.)


 Paperbak을 분석해서 대량의 파일을 읽고, 처리할 수 있게 만들어야 될 것이다.


 그 외에도 BMP으로 되어 있는 데이터 정보를 PNG나 JPEG로 변형을 가능하다면, 이걸 이용해서 이미지로 데이터를 저장 시킬 수 있게된다.


 최대 300DPI로 저장을 하는 것으로 현재는 데이터가 별로 효과적이지 않다. 라는 것이 있다.


 일단, 변형을 했어도 이상 없다. 라는게 결과적이다.(이미지 압축에서 변형이다.)


 그리고 파일을 Split(잘라내기)가 150~200MByte 이내이면, 얼마든지 제작이 가능하다.(33.5GB가 되는 파일을 제작해서 이상 없음도 확인되었다.)


 paperbak의 소스를 보고 분석해야 될 것이다.


 paperbak에 지원되는 것은 CRYPTO와 BZip의 라이브러리를 이용해서 제작이 되어 있다.


 paperbak의 과정은


 BZip을 이용해서 압축시키고, 그 결과물을 BitMap에 적용시킨다.


 256색인 BMP파일을 만들어지게 되지만, 검은색+흰색의 구조이기 때문에, 문제가 없다.


paperbak.h는 paperbak이 제대로 작동되기 위한 구조체 및 함수를 정의되어 있다.


 Main.cpp는 WinMain으로 컨트롤과 주로 작동되는 현상을 정의된 소스이다.


 Fileproc.cpp는 BitMap을 만드는 과정.


 Printer.cpp는 파일을 그림파일로 변형시키는 용도이다.


 Crc16.cpp는 정보의 오류를 확인하고 처리하는 CRC16 소스이다.


 Controls.cpp는 버튼등을 처리하는 것이다.


 Decoder.cpp는 BitMap을 파일로 변형하는 것이다.


 사용법이나, 방식을 공부하고 싶으면, 다음의 사이트를 참조하길 바란다.


 http://ollydbg.de/Paperbak/


 

paperbak-1.10.exe.zip

paperbak-1.10.src.zip



 

Posted by JunkMam
,

 데이터를 많이 관리해야되는 일을 하고 있다.


 포토스 백업용으로 사용할 경우에는 인코딩을 하고 있어서 완전한 원본을 관리할 수 없다는 단점을 가질 수 있다.


 그래서 실험을 하고자한다.(단, 규약을 읽지 않았기 때문에, 규약에서 문제를 만날 수 있다. 그러므로 실험이 이렇게 되었다. 라고 생각할 것. 따라할 경우 피해는 책임을 지지 않는다.)


 실험에 사용하는 것은 2가지이다.


 paperbak과 구글 포토스이다.


 paperbak이란, 예전에 포스팅한 종이에 데이터를 백업하는 QR코드와 유사한 장치라고 했었다.


 링크 : http://jihadw.tistory.com/74


 paperbak 1.1에서 최대 150MByte의 데이터를 종이(인쇄) 및 BMP으로 출력하는 방법이 제공된다.


 종이 인쇄를 한다면, 약 1100장 가량이 사용이 되고 있기 때문에 비용이 엄청나게 든다.(엄청 비용이 비싸게 든다고 생각하면 된다.)


 그 다음은 BMP으로 파일로 출력이 된다.

 하지만, 여기서 파일이 BMP으로 저장이 되어 있기 때문에 용량이 오히려 많이 들게 되어 있다.


 내가 실험으로 사용할 것은 BMP으로 저장하는 것이다.


 구글 포토스에서 올려도 BMP은 변형이 되어서 저장이 되는 걸로 알고 있는데, 정확하게는 더 자세히 연습할려고 한다.


 현재는 이상 없이작동이 되어 있다.


 구글 포토스에 백업용으로 작업을 해야겠다.


 현재, 연습할것은 2



 여기서, 272MByte에서 적용을 하는 것이 따른것이다.


 현재, 구글 포토스에 올려서 문제가 없는지, 어떻게 복구가 되는지를 확인 할려고 한다.(참고로 1100장 가량이 되어서 이것을 여러개로 출력할 수 있게 생각을 해봐야 될 것 같다.)


 이게 성공되면, 구글 포토스 약관을 보고 이용할려고 한다.(아직 실험이 완료된게 아니므로 따라하지 말 것.)

Posted by JunkMam
,

 MonkeyRunner을 이용해서 이미지를 분석할 수 있는데.(속도면에서 엄청 늦은 경우가 존재한다.)

 이것을 이용하기 위해서는 부분적으로 사진(이미지)을 잘라내서 사용하는 방법을 알아야 될 것이다.


 그래서 SubImage을 사용하는 방법을 작성하고자 한다.


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.awt.image.BufferedImage;
 
import com.android.chimpchat.adb.AdbBackend;
import com.android.chimpchat.core.IChimpDevice;
import com.android.chimpchat.core.IChimpImage;
 
import com.android.chimpchat.adb.AdbChimpDevice;
 
import com.android.chimpchat.core.ChimpImageBase;
 
public class MonkeyTest {
    public static void main(String[] args) {
        
        IChimpDevice device = null;
        
        try
        {
            // sdk/platform-tools has to be in PATH env variable in order to find adb
            device = new AdbBackend().waitForConnection();            
        }
        catch(java.lang.NullPointerException e)
        {
            System.out.println("Error");
            System.exit(-1);
        }
        
        // Print Device Name
        System.out.println(device.getProperty("build.model"));
 
        // Take a snapshot and save to out.png
        IChimpImage subImage = device.takeSnapshot().getSubImage(4040250250);
        subImage.writeToFile("out.png""png");
        
        device.dispose();
        
        System.exit(0);
    }
}
cs



 여기서 getSubImage는


 x위치, y위치, 넓이, 높이 이런 순으로 작성하면 된다.


 단, 여기서 생성되는 사각형이 현재 이미지의 전체의 위치로 옮겨 가면 안된다.


 예을 들어서 가로 100, 세로 100인 이미지에서 x위치 99에 넓이 100 이렇게 하면, 오작동이 일어나게 된다.

Posted by JunkMam
,

 안드로이드 스튜디오 설치 방법.


 안드로이드 스튜디오 설치 방법은 구글에 제공하는 developer 사이트에 가면 된다.

 링크 : https://developer.android.com/index.html


 여기서, 안드로이드 스튜디오를 전체다 설치해도 되고.

 안드로이드 SDK만 다운 받은 후 컴파일 하는 방법도 된다.(여기서 컴파일할려면, tools을 사용하는 방법을 연습해야된다.)


 R.java

 MainActivity.xml 등 기본적으로 만들어지는 것을 프로그래머 자신이 스스로 만들려면, 어려움이 존재한다.


 그래서 안드로이드 스튜디오를 설치하는 것을 추천한다.(IDE를 무조건 가지고와서 사용하는 것은 어리석은 짓이니. IDE에 구성 요소는 알고 하는게 좋다.)


 안드로이드 스튜디오의 구성은 다음과 같다.


 Java+Android SDK


 이 두개를 간단하게 컨트롤 할 수 있게 하는게 안드로이드 스튜디오이다.


 그래서 Java를 먼저 설치해줘야 된다.


 Java는 Sun사에서 만들어졌는데, Sun사가 Oracle에 인수되면서 Oracle에서 Java를 설치할 수 있게 되었다.(이로 인해서 Oracle과 Google의 법정 다툼도 생겼던건...)


 링크 : http://www.oracle.com/technetwork/java/javase/downloads/index.html


 여기서 JDK(Java Developer Kit)을 설치하면 된다.


 JRE는 자바 실행 환경이기 때문에, 개발용도로 만들려면, JDK을 다운받는게 맞다.

Posted by JunkMam
,