rtl-sdr에서 gqrx나 airspy sdr# 에서 처럼

주파수에 대한 그래프를 시간축으로 그리는 걸 spectrogram 이라고 하는 듯

 

[링크 : https://blog.freifunk.net/2017/06/26/choosing-spectrogram-visualization-library-javascript/]

[링크 : https://www.arc.id.au/Spectrogram.html]

 

에러 발생

[링크 : https://github.com/sebleier/spectrogram.js]

 

speccy - 오디오 초기화 문제 발생(linux google-chrome, firefox)

[링크 : https://github.com/drandrewthomas/Speccy]

 

+

정책 변경, deprecated로 인해서 먼가 손을 대긴 해야 할 듯

[링크 : https://sxbxn.tistory.com/12]

[링크 : https://developer.chrome.com/blog/autoplay/#webaudio]

'프로그램 사용 > fft, fftw' 카테고리의 다른 글

fftw plan  (0) 2023.03.31
libfftw3 precision  (0) 2023.03.30
fft 분석 패러미터  (0) 2023.03.29
FFT 윈도우, 오버랩  (0) 2023.03.23
cabs()  (0) 2023.02.15
Posted by 구차니

FFT Size

FFT overlap

FFT windowing

 - leakage

[링크 : https://scribblinganything.tistory.com/532]

'프로그램 사용 > fft, fftw' 카테고리의 다른 글

libfftw3 precision  (0) 2023.03.30
spectrogram  (0) 2023.03.29
FFT 윈도우, 오버랩  (0) 2023.03.23
cabs()  (0) 2023.02.15
FFT 분석 기법  (0) 2023.02.07
Posted by 구차니
embeded/FPGA - ALTERA2023. 3. 28. 19:45

 

2. Executable code is stored in the EPCS. This is according to your second attempt: 
 
--- Quote Start ---  
I changed the reset vector to EPCS controller, it still doesn't work 
--- Quote End ---  
 
In this case the epcs_flash_controller is nesessary in your system. The reset vector must point to the epcs_flash_controller, which contains the bootcopier code. The exeption vector must point to On-Chip RAM because your .text segment is still located there. 
After power is up, NiosII start the execution of the bootcopier code from epcs_flash_controller internal ROM. This bootcopier gets application executible code from EPCS and stores it into On-Chip RAM. After bootcopier has finished its work the control passes to the application executible code in the On-Chip RAM.

[링크 : https://community.intel.com/t5/Nios-II-Embedded-Design-Suite/how-to-embeded-the-Nios-software-into-FPGA-sof-file/m-p/150842]

 

1.5.5. Nios II Processor Application Copied from EPCS Flash to RAM Using Boot Copier
The EPCS address space is not mapped into the Altera Avalon EPCS Flash Controller’s Avalon MM slave interface. Instead, read or write accesses are done through CSRs. Upon system reset, the EPCS device needs to be initialized before usage.

For these reasons, the EPCS controller-based boot copier is required for initializing the EPCS device and copying the Nios II application to RAM for execution.

The EPCS controller instantiates a block of boot ROM internally at its base address (offset 0x0, just before EPCS controller’s CSRs) for storing the boot copier. Nios II reset vector offset must set to EPCS controller base address, such that upon system reset the boot copier is executed first to initialize the EPCS controller and device.

[링크 : https://www.intel.com/content/www/us/en/docs/programmable/683820/current/nios-ii-processor-application-copied-37722.html]

[링크 : https://manuals.plus/ko/Intel/1-5-1-nios-ii-booting-general-flow-manual#axzz7xFS1je7Y]

 

Nios® II 플래시 프로그래머를 사용할 때 --csr 옵션은 무엇입니까?

설명
직렬 플래시 컨트롤러 II IP와 함께 Nios II 플래시 프로그래머(현재 "quartus_pgm --nios2")를 디자인에 사용할 때 명령 문자열에 새로운 옵션 "--csr"를 지정해야 합니다.

해결 방법
--csr 옵션은 직렬 플래시 컨트롤러 II IP 코어의 "avl_csr" 인터페이스 주소로 지정되어야 합니다.  예를 들어 플랫폼 디자이너 시스템에서 "avl_csr" 인터페이스의 주소 범위가 0x1000_0000 0x1000_003F 경우 "--csr=0x10000000"을 사용하십시오.

이 기능은 Nios II 플래시 프로그래머 사용자 가이드의 향후 버전에서 완전히 문서화될 것으로 예상됩니다.

[링크 : https://www.intel.co.kr/content/www/kr/ko/support/programmable/articles/000086366.html]

'embeded > FPGA - ALTERA' 카테고리의 다른 글

altera uart ip  (0) 2023.05.14
altera - partial reconfigure  (0) 2023.04.24
Nios V  (0) 2021.11.01
IOFS - Intel Open FPGA Stack  (0) 2021.07.06
oneAPI Quartus pro 필요?  (0) 2021.04.06
Posted by 구차니
Programming/golang2023. 3. 28. 10:36

웹소켓을 통해 데이터를 JSON으로 변환해서 보내니 웹서버에 부하가 걸리는 것 같아서

binary 데이터 그대로~ 보내고 웹에서 binary를 처리하도록 하려고 찾아보는 중

 

서버 사이드(golang)

for {
    messageType, p, err := conn.ReadMessage()
    if err != nil {
        log.Println(err)
        return
    }
    if err := conn.WriteMessage(messageType, p); err != nil {
        log.Println(err)
        return
    }
}
In above snippet of code, p is a []byte and messageType is an int with value websocket.BinaryMessage or websocket.TextMessage.

[링크 : https://pkg.go.dev/github.com/gorilla/websocket#section-readme]

[링크 : https://kiwitrip.tistory.com/5]

 

클라이언트 사이드(웹 브라우저)

webSocket.onmessage = function (message) {
    var blob = message.data;
    var fileReader = new FileReader();
    fileReader.onload = function (event) {
        var arrayBuffer = event.target.result;
        var dataview = new DataView(arrayBuffer);
        var answer = dataview.getFloat64(0);
        alert("Server> : " + answer);
    };
    fileReader.readAsArrayBuffer(blob);
};

[링크 : http://www.gisdeveloper.co.kr/?p=5594]

 

+

23.04.04

var wsHost = "http://my-sites-url.com/path/to/echo-web-socket-handler";
var ws = new WebSocket(wsHost);
var buffer = new ArrayBuffer(5); // 5 byte buffer
var bufferView = new DataView(buffer);

bufferView.setFloat32(0, Math.PI);
bufferView.setUint8(4, 127);

ws.binaryType = 'arraybuffer';

ws.onmessage = function(message) {
    var view = new DataView(message.data);
    console.log('Uint8:', view.getUint8(4), 'Float32:', view.getFloat32(0))
};

ws.onopen = function() {
    ws.send(buffer);
};

[링크 : https://riptutorial.com/javascript/example/6661/working-with-binary-messages]

'Programming > golang' 카테고리의 다른 글

go 포맷터  (0) 2023.05.11
golang echo directory listing  (0) 2023.05.08
golang 크로스 컴파일 GOARM GOARCH  (0) 2023.02.03
golang map 에 데이터 추가하기  (0) 2023.01.13
golang reflect  (0) 2023.01.03
Posted by 구차니
Linux2023. 3. 27. 14:12

전혀 연관없는 곳에서 발견

bash에서 tab 누르면 어떤 명령어는 하위 명령어에 대해서 자동 완성이 지원되는데

아래 경로의 completions 라는 경로에 파일명을 따라서 수행된다.

/usr/share/bash-completion

 

[링크 : https://github.com/Xilinx/gstreamer/blob/master/data/bash-completion/completions/gst-launch-1.0]

[링크 : https://kubernetes.io/ko/docs/tasks/tools/included/optional-kubectl-configs-bash-linux/]

'Linux' 카테고리의 다른 글

sysfs ethernet link status  (0) 2023.05.17
리눅스 커맨드 라인에서 몇줄씩 건너뛰고 출력하기  (0) 2023.03.30
리눅스 키보드로 강제 종료하기  (0) 2023.03.10
shopt nohup  (0) 2023.01.27
리눅스 배터리 wear level  (0) 2023.01.04
Posted by 구차니

되는데 엄청 느리다.

아마 async 옵션을 안줘서 그런거 같은데..

 

아무튼 gstaremer의 파이프를 구성하는데 ximagesink가 비디오를 출력하기 위한 마지막 sink 니까

파이프 구성없이 v4l2src를 실행하고 jpegdec 한다음(MJPG 웹캠이라) mix 라는 이름을 가지고 있던 videomixer 에게 던지면 끝

$ gst-launch-1.0 v4l2src ! jpegdec ! videomixer name=mix ! videoconvert ! ximagesink v4l2src device=/dev/video2 ! jpegdec ! mix.

'프로그램 사용 > gstreamer' 카테고리의 다른 글

gstremaer videobox + videomixer  (0) 2023.04.10
gst-inspector.c  (0) 2023.04.06
gstreamer videomixer ... 2?  (0) 2023.03.27
gstreamer pad - sink 와 src  (0) 2023.03.27
gstreamer cheat sheet - tee, queue  (0) 2023.03.22
Posted by 구차니

chatGPT 님께 물어보니 tee나 queue 대신 videomixer를 알려주시는데

videomixer의 경우 특이하게(?) sink_%u 라고 여러개의 sink를 받을 수 있는 엘리먼트이다.

Pad Templates
sink_%u
video/x-raw:
         format: { AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
Presence – request

Direction – sink

Object type – GstPad

src
video/x-raw:
         format: { AYUV, BGRA, ARGB, RGBA, ABGR, Y444, Y42B, YUY2, UYVY, YVYU, I420, YV12, NV12, NV21, Y41B, RGB, BGR, xRGB, xBGR, RGBx, BGRx }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
Presence – always

Direction – src

Object type – GstPad

[링크 : https://gstreamer.freedesktop.org/documentation/videomixer/index.html?gi-language=c]

 

그럴싸 하게 주는데 막상 실행하면 에러 -_-

$ gst-launch-1.0 \
v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! videorate ! videoconvert ! videocrop top=0 left=0 right=640 bottom=480 ! \
videomixer name=mix \
sink_0::xpos=0 sink_0::ypos=0 sink_0::alpha=0 \
v4l2src device=/dev/video1 ! video/x-raw,width=640,height=480 ! videorate ! videoconvert ! videocrop top=0 left=0 right=640 bottom=480 ! \
sink_1::xpos=640 sink_1::ypos=0 sink_1::alpha=0 \
! videoconvert ! autovideosink

(gst-launch-1.0:11399): GStreamer-CRITICAL **: 12:04:11.113: gst_element_link_pads_filtered: assertion 'GST_IS_BIN (parent)' failed
WARNING: erroneous pipeline: syntax error

'프로그램 사용 > gstreamer' 카테고리의 다른 글

gst-inspector.c  (0) 2023.04.06
gstreamer videomixer 반쪽 성공  (0) 2023.03.27
gstreamer pad - sink 와 src  (0) 2023.03.27
gstreamer cheat sheet - tee, queue  (0) 2023.03.22
gstreamer를 이용하여 uvc 웹캠 (mjpg) 보기  (0) 2023.03.22
Posted by 구차니

pad는 입/출력을 모두 의미할 수 있고(PCB의 IC의 발이 pad 니까..)

pad의 종류에 sink와 src가 있는데

sink는 예상과는 다르게 입력이다. src가 해당 엘리먼트의 출력..(어떤 놈이 이렇게 이름을 이따구로 정해놓은거냐 -_-)

 

[링크 : https://gstreamer.freedesktop.org/documentation/application-development/basics/pads.html?gi-language=c]

 

+

pad에 src만 있는 녀석을 소스

sink / src가 있는 녀석을 필터

sink 만 있는 녀석을 sink 라고 표현하는 듯

[링크 : https://gstreamer.freedesktop.org/documentation/application-development/basics/elements.html?gi-language=c]

[링크 : https://gstreamer.freedesktop.org/documentation/tutorials/basic/dynamic-pipelines.html?gi-language=c]

 

가장 만만(?)한 v4l 웹캠 입력을 예를 들어 보면 아래와 같은 파이프가 구성되는데

v4l2src 가 jpegdec를 거쳐 xvimagesink로 전달된다.

$ gst-launch-1.0 v4l2src ! jpegdec ! xvimagesink

 

v4l2src는 sink가 없는 엘리먼트인데 이걸 머라고 불러야 하나?

아무튼 src의 image/jpeg로 뱉어주면(아마 자동으로 서로 사용가능한 포맷을 맞추는 느낌?)

src
image/jpeg:
video/mpeg:
    mpegversion: 4
   systemstream: false
video/mpeg:
    mpegversion: { (int)1, (int)2 }
video/mpegts:
   systemstream: true
video/x-bayer:
         format: { bggr, gbrg, grbg, rggb }
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-dv:
   systemstream: true
video/x-fwht:
video/x-h263:
        variant: itu
video/x-h264:
  stream-format: { (string)byte-stream, (string)avc }
      alignment: au
video/x-h265:
  stream-format: byte-stream
      alignment: au
video/x-pwc1:
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-pwc2:
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-raw:
         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-sonix:
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-vp8:
video/x-vp9:
video/x-wmv:
     wmvversion: 3
         format: WVC1

video/x-raw(format:Interlaced):
         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }
          width: [ 1, 32768 ]
         height: [ 1, 32768 ]
      framerate: [ 0/1, 2147483647/1 ]
 interlace-mode: alternate
Presence – always

Direction – src

Object type – GstPad

[링크 : https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c]

 

jpegdec 에서는 image/jpeg로 받아 video/x-raw로 변환해서 출력하고

Pad Templates
sink
image/jpeg:
Presence – always

Direction – sink

Object type – GstPad

src
video/x-raw:
         format: { I420, RGB, BGR, RGBx, xRGB, BGRx, xBGR, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
Presence – always

Direction – src

Object type – GstPad

[링크 : https://gstreamer.freedesktop.org/documentation/jpeg/jpegdec.html?gi-language=c]

 

xvimagesink는 video/x-raw로 받아서 화면으로 출력한다.

Pad Templates
sink
video/x-raw:
      framerate: [ 0/1, 2147483647/1 ]
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
Presence – always

Direction – sink

Object type – GstPad

[링크 : https://gstreamer.freedesktop.org/documentation/xvimagesink/index.html]

'프로그램 사용 > gstreamer' 카테고리의 다른 글

gstreamer videomixer 반쪽 성공  (0) 2023.03.27
gstreamer videomixer ... 2?  (0) 2023.03.27
gstreamer cheat sheet - tee, queue  (0) 2023.03.22
gstreamer를 이용하여 uvc 웹캠 (mjpg) 보기  (0) 2023.03.22
gstream videomixer  (0) 2023.02.17
Posted by 구차니

어우 요즘 낮잠이 너무 늘었어..

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

대략 빡침  (0) 2023.04.13
외근 야근  (0) 2023.04.03
외근 외근.야근  (0) 2023.03.21
언제나 피곤  (0) 2023.03.12
피곤  (0) 2023.03.11
Posted by 구차니

난 미숙하니 세금 안내도 되나?

 

[링크 :https://v.daum.net/v/20230324161743197]

 

'개소리 왈왈 > 정치관련 신세한탄' 카테고리의 다른 글

만우절  (0) 2023.04.01
탄핵으로도 부족한 만행  (0) 2023.03.30
3.1절  (0) 2023.03.01
외근이.잦아..  (0) 2023.02.28
이명박 특사..?  (0) 2023.01.25
Posted by 구차니