GenICam.vin using more RAM than expected

Hello,

I am currently developing an application that uses the GenICam.vin and saves images to the ringbuffer for retrieval at a later point.

I calculated that my image is using about 2MB per image (1920x1080, Mono).
But when I set the ringbuffer count to (for example) 1000 it should use about 2GB of RAM but it actually uses about 4GB!
I can reproduce this when I use the CVB Viewer.
Am i doing something wrong or am I missing something?

I am thankful for any tips.
Best regards,
L. Miller

What bit depth images are you collecting in the ringbuffer? Are they 8 bit?

Yes, they are normal 8 bit images.

Hi,

it sounds as if the driver would falsly allocate a convert buffer beside the image bufffer. I understand the camera is delivering Mono8. Could you attach your GenICam.ini. That might explain it.

Regards

Hi dusalf,

I can’t attach the GenICam.ini as file as I am a new user. But here it is.
I tested with a different camera the past days but the problem is the same.
Thanks for your help.

[SYSTEM]
NumCameras=1
CreateAutoIni=0
AutoSwitchEnable=0
DeviceUpdateTimeout=-1
AutoConfigExecuted=1

[Channel_0]
TL=GEVTL.cti
Interface=FD::MAC->38-D5-47-74-D1-C2
Device=::ID->00-0C-DF-01-01-5B::169.254.1.92 

; Pixel format of the CVB Image
; -> 0 = Raw image what ever the device delivers
; -> 1 = Mono 8Bit
; -> 2 = RGB 8Bit
; -> 3 = Mono 16Bit
; -> 4 = RGB 16Bit
; -> 5 = Auto
PixelFormat = 1

;Number of buffers allocated at vin startup
NumBuffer =3

;Access Mode
; 2 - Read Only 
; 3 - Control
; 4 - Exclusive
AccessMode =4

; If Master mode is chosen AccessMode must be 3 otherwise the driver will not load
MCMasterMode =0 
MCSession =224.1.1.1

;Rotate Image
; 0 = None
; 1 = 90deg
; 2 = 180deg
; 3 = 270deg
RotateImage=0

; Packet Size
; -1 Use Default
; 0 Auto
; >0 Set to Value
PacketSize=-1

; Inter Packet Delay
; -1 Use Default
; >= 0 Set to Value
InterPacketDelay=-1

; Heartbeat Timeout
; -1 Ignore setting and use system default
; 0 Set 0 to device and disable internal hb thread
; 0 < x < 500 Set to default ( 3000 )
; >= 500 Set to Value
HeartbeatTimeout =-1

; Heartbeat Timeout Margin
; the margin, if set, must be at least 50ms smaller than the HBTimeout
; -1 Ignore setting 
; 0 use default depending on the system settings
; 0 < x < 50 invalid
; >=50 set margin
HeartbeatTimeoutMargin = -1

ConvertAlways= 0

; Use Turbo Drive
; Enable or disable Turbo Drive. Device has to support Turbo Drive.
UseTurboDrive =1

; Number Convert Buffer
; Number of Primary Acquisition Buffers used in case of a pixel format conversion / image decompression.
; Min = 3; Max = 100; Default = 3
NumConvertBuffer =3

; Number of conversion threads
; Number of threads used to convert / decompress images in parallel.
; Min = 1; Max = 16; Default = 1
NumConvertThreads = 1
DeviceMAC=00-0C-DF-01-01-5B
IPAddress=169.254.1.92
PacketResend=1
InterfaceDisplayName=Filter Driver @ 38-D5-47-74-D1-C2
DeviceDisplayName=CV-A10GE (00-0C-DF-01-01-5B )
Vendor=JAI Corporation
Model=CV-A10GE
UserName=
SerialNumber=S100455
MCNoJoin=0

Regards

Hi, it seems I have found the problem: In my .ini file the UseTurboDrive is set to 1 even though I don’t use TurboDrive. Setting it to 0 fixed the problem.