how to upload pdf file in database using asp.net c# : Search pdf files for text control software platform web page winforms .net web browser PsychoPyManual1-part810

PsychoPy - Psychology software for Python, Release 1.84.0
Spatial frequency: cycles per cm
Requires : information about the screen width in cm and size in pixels
Assumes : pixels are square. Canbe verified by drawing a stimulus withmatching widthand height andverifying that
it is in fact square. For aCRT this can be controlled by setting the size ofthe viewable screen (settings onthe monitor
itself).
2.2.4 Degrees of visual angle
Use degrees of visual angle to set the size and location of the stimulus. This is, of course, dependent on the distance
that the participant sits from the screen as well as the screen itself, so make sure that this is controlled, and remember
to change the setting inMonitorCenterif the viewing distance changes.
Spatial frequency: cycles per degree
Requires : information about the screen width in cm and pixels and the viewing distance in cm
There are actually three variants: ‘deg’, ‘degFlat’,and ‘degFlatPos’
‘deg’ : Most people using degrees of visual angle choose to make the assumption that a degree of visual angle spans
the samenumberofpixels at allparts ofthescreen. This isn’t actually true for standard flat screens -a degree ofvisual
angle at the edge of the screen spans more pixels because it is further from the eye. For moderate eccentricities the
error is small (a 0.2% error in size calculation at 3 deg eccentricity) but grows as stimuli are placed further from the
centre ofthe screen (a 2% error at 10 deg). For most studies this form of calculation is preferred, as it does not result
in a warped appearance of visual stimuli, but if you need greater precision at far eccentricities then choose one of the
alternatives below.
‘degFlatPos’ : This accounts for flat screens in calculating position coordinates of visual stimuli but leaves size and
spatial frequency uncorrected. This means that an evenly spaced grid of visual stimuli will appear warped in position
but will
‘degFlat’: This corrects the calculations of degrees for flatness of the screen for each vertex of your stimuli. Square
stimuli in the periphery will, therefore, become more spaced apart but they will also get larger and rhomboid in the
pixels that they occupy.
2.2.5 Pixels on screen
You can also specify the size and location of your stimulus in pixels. Obviously this has the disadvantage that sizes
are specific to your monitor (because all monitors differ in pixel size).
Spatial frequency: ‘cycles per pixel‘ (this catches people outbut is usedtobe inkeeping withthe otherunits.
If using pixels as your units you probably want a spatial frequency in the range 0.2-0.001 (i.e. from 1 cycle every 5
pixels to one every 100 pixels).
Requires : information about the size of the screen (not window) in pixels, althoughthis can often be deduce from the
operatingsystem if it has been set correctly there.
Assumes: nothing
2.3 Color spaces
The color of stimuli can be specified when creating a stimulus and when using setColor() in a variety of ways. There
are three basic color spaces that PsychoPy can use, RGB, DKL and LMS but colors can also be specified by a name
(e.g. ‘DarkSalmon’)or by a hexadecimal string (e.g. ‘#00FF00’).
examples:
2.3. Color spaces
5
Search pdf files for text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
pdf text select tool; how to search a pdf document for text
Search pdf files for text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
make pdf text searchable; select text in pdf reader
PsychoPy - Psychology software for Python, Release 1.84.0
stim = visual.GratingStim(win, color=[1,-1,-1], colorSpace='rgb'#will be red
stim.setColor('Firebrick')#one of the e web/X11 1 color names
stim.setColor('#FFFAF0')#an off-white
stim.setColor([0,90,1], colorSpace='dkl')#modulate along g S-cone axis in isoluminant t plane
stim.setColor([1,0,0], colorSpace='lms')#modulate only on n the e L L cone
stim.setColor([1,1,1], colorSpace='rgb')#all guns to o max
stim.setColor([1,0,0])#this is ambiguous - you need to o specify y a color space
2.3.1 Colors by name
Anyoftheweb/X11colornamescan be usedto specify acolor. Thesearethen convertedintoRGBspacebyPsychoPy.
These are not case sensitive, but should not include anyspaces.
2.3.2 Colors by hex value
This is really just another way of specifying the r,g,b values of a color, where each gun’s value is given by two
hexadecimal characters. For some examples seethischart. To use these in PsychoPy they should be formatted as a
string, beginning with # and with no spaces. (NB on a British Mac keyboard the # key is hidden - you need to press
Alt-3)
2.3.3 RGB color space
This is the simplest color space, in which colors are represented by a triplet of values that specify the red green and
blue intensities. These three values each range between -1 and 1.
Examples:
• [1,1,1] is white
• [0,0,0] is grey
• [-1,-1,-1] is black
• [1.0,-1,-1] is red
• [1.0,0.6,0.6] is pink
Thereasonthatthese colors are expressed ranging between 1and -1(ratherthan 0:1or0:255)is thatmanyexperiments,
particularly in visual science where PsychoPy has its roots, express colors as deviations from a grey screen. Under
that scheme a value of -1 is the maximum decrement from grey and +1 is the maximumincrement above grey.
Note that PsychoPy will use your monitor calibration to linearize this for each gun. E.g., 0 will be halfway between
the minimum luminance and maximum luminance foreach gun, if your monitor gammaGrid is set correctly.
2.3.4 HSV color space
Another way to specify colors is in terms of their Hue, Saturation and ‘Value’ (HSV). For a description of the color
space see theWikipediaHSVentry. The Hue in this case is specified in degrees, the saturation ranging 0:1 and the
‘value’ also ranging 0:1.
Examples:
• [0,1,1] is red
• [0,0.5,1] is pink
6
Chapter 2. General issues
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
be easily edited), is less searchable for search engines are able to perform high fidelity PDF to HTML Converted HTML files preserve all the contents of source
search pdf files for text programmatically; find and replace text in pdf
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
DotNetNuke), SharePoint. All text content of target PDF document can be copied and pasted to .txt files by keeping original layout. C#.NET
how to select text in a pdf; select text pdf file
PsychoPy - Psychology software for Python, Release 1.84.0
• [90,1,1] is cyan
• [anything, 0, 1] is white
• [anything, 0, 0.5] is grey
• [anything, anything,0] is black
Note that colors specified in this space (like in RGB space) are not going to be the same another monitor; they are
device-specific. Theysimplyspecifythe intensityofthe 3primaries ofyourmonitor,butthese differbetweenmonitors.
As with the RGB space gamma correction is automatically applied if available.
2.3.5 DKL color space
To use DKL colorspace the monitor should be calibrated with an appropriate spectrophotometer, such as a PR650.
In the Derrington, Krauskopf and Lennie1 color space (based on the Macleod and Boynton2 chromaticity diagram)
colors are represented in a 3-dimensional space using spherical coordinates that specify the elevation from the isolu-
minant plane,the azimuth (the hue) and the contrast (as a fraction ofthe maximal modulations along the cardinal axes
ofthe space).
In PsychoPy these values are specified in units of degrees for elevation and azimuth and as a float (ranging -1:1) for
the contrast.
Derrington,A.M.,Krauskopf,J.,&Lennie,P.(1984).ChromaticMechanismsinLateralGeniculateNucleusofMacaque.JournalofPhysiol-
ogy, 357,241-265.
2
MacLeod, D. I. A.& Boynton, R. M. (1979). Chromaticity diagram showing cone excitation by stimuli ofequal luminance. Journal of the
Optical SocietyofAmerica,69(8),1183-1186.
2.3. Color spaces
7
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
Convert PDF to text in .NET WinForms and ASP.NET project. Text in any PDF fields can be copied and pasted to .txt files by keeping original layout.
pdf make text searchable; pdf editor with search and replace text
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Images. File and Page Process. File: Merge, Append PDF Files. File: Split PDF Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF.
converting pdf to searchable text format; cannot select text in pdf file
PsychoPy - Psychology software for Python, Release 1.84.0
Note that not all colors that can be specified in DKL color space can be reproduced on a monitor. Hereis a movie
plotting in DKL space (showing cartesian coordinates, not spherical coordinates) the gamut of colors available on an
example CRT monitor.
Examples:
• [90,0,1] is white (maximumelevation aligns the color with the luminance axis)
• [0,0,1] is an isoluminant stimulus, with azimuth 0 (S-axis)
• [0,45,1] is an isoluminant stimulus,with an oblique azimuth
2.3.6 LMS color space
To use LMS colorspace the monitor should be calibrated with an appropriate spectrophotometer, such as a PR650.
In this color space you can specify the relative strength of stimulation desired for each cone independently, each with
avalue from -1:1. This is particularly useful for experiments that need to generate cone isolating stimuli (for which
modulation is only affecting a single cone type).
2.4 Preferences
The Preferences dialog allows to adjust general settings for different parts of PsychoPy. The preferences settings
are saved in the configuration fileuserPrefs.cfg. The labels in brackets for the different options below represent the
abbreviations used in the userPrefs.cfg file.
In rare cases, you might want to adjust the preferences on a per-experiment basis. See the API reference for the
Preferences classhere.
2.4.1 Application settings (App)
These settings are common to all components ofthe application (Coder and Builderetc)
show start-up tips (showStartupTips): Display tips when starting PsychoPy.
large icons (largeIcons): Do you want large icons (on some versions of wx on OSX this has no effect)?
default view (defaultView): Determines which view(s) open when the PsychoPy app starts up. Default is ‘last’,
which fetches the same views as were open when PsychoPy last closed.
resetpreferences (resetPrefs): Reset preferences to defaults on next restart of PsychoPy.
auto-save prefs (autoSavePrefs): Save any unsaved preferences before closing the window.
debug mode (debugMode): Enable features fordebugging PsychoPy itself,including unit-tests.
locale (locale): Language to use in menus etc.; not all translations are available. Select a value, then restart the app.
Think aboutaddingtranslationsforyourlanguage.
2.4.2 Builder settings (Builder)
reloadprevious exp (reloadPrevExp): Select whether to automatically reload a previously opened experiment at
start-up.
uncluttered namespace (unclutteredNamespace): Ifthis option is selected, the scripts will use more complex code,
but the advantage is that there is less of a chance that name conflicts will arise.
8
Chapter 2. General issues
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
File: Merge, Append PDF Files. |. Home ›› XDoc.PDF ›› VB.NET PDF: Merge and Append PDF. VB.NET Demo code to Combine and Merge Multiple PDF Files into One.
pdf find text; convert pdf to word searchable text
VB.NET Create PDF from Text to convert txt files to PDF in vb.net
Images. File & Page Process. File: Merge, Append PDF Files. File: Split PDF Document. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF. Image
how to select text in pdf; pdf searchable text
PsychoPy - Psychology software for Python, Release 1.84.0
components folders (componentsFolders): A list of folder path names that can hold additional custom components
for the Builder view; expects a comma-separated list.
hiddencomponents (hiddenComponents): A list of components to hide (e.g., because you never use them)
unpacked demos dir (unpackedDemosDir): Location of Builder demos on this computer (after unpacking).
saved data folder (savedDataFolder): Name of the folder where subject data should be saved (relative to the script
location).
Flow at top(topFlow): If selected,the “Flow” section will be shown topmost and the “Components” section will be
on the left. Restart PsychoPy to activate this option.
always show readme (alwaysShowReadme): If selected, PsychoPy always shows the Readme file if you open an
experiment. The Readme file needs to be located in the same folder as the experiment file.
max favorites (maxFavorites): Upper limit on how many components can be in the Favorites menu of the Compo-
nents panel.
2.4.3 Coder settings (Coder)
code font (codeFont): A list of font names tobe used for code display. The first found on the system will be used.
comment font (commentFont): A list offont names to be used forcomments sections. The firstfound on the system
will be used
output font (outputFont): A list of font names to be used in the output panel. The first found on the system will be
used.
code font size (codeFontSize): An integerbetween 6 and 24 that specifies the font size forcode display in points.
output font size (outputFontSize): An integer between 6 and 24 that specifies the font size for output display in
points.
show source asst (showSourceAsst): Doyouwanttoshowthesource assistantpanel (tothe right oftheCoderview)?
On Windows this provides help about the current function if it can be found. On OS X the source assistant is of
limited use and is disabledby default.
show output (showOutput): Show the output panel in the Coder view. If shown all python output from the session
will be output to this panel. Otherwise it will be directed to the original location (typically the terminal window
that calledPsychoPy application to open).
reloadprevious files (reloadPrevFiles): Should PsychoPy fetch the files that you previously had open when it
launches?
preferredshell (preferredShell): Specify which shell shouldbe used for the coder shell window.
newline convention (newlineConvention): Specify which character sequence should be used to encode newlines in
code files: unix =n (line feed only), dos =rn (carriage return plus line feed).
2.4.4 General settings (General)
windowtype (winType): PsychoPy can use one of two ‘backends’ for creating windows and drawing; pygame and
pyglet. Here you can set the default backend to be used.
units (units): Default units forwindows andvisual stimuli (‘deg’, ‘norm’, ‘cm’,‘pix’). SeeUnitsforthewindowand
stimuli.Canbeoverriddenbyindividualexperiments.
full-screen (fullscr): Shouldwindowsbecreatedfullscreenby default? Canbeoverriddenbyindividualexperiments.
2.4. Preferences
9
C# Create PDF from Text to convert txt files to PDF in C#.net, ASP
Images. File and Page Process. File: Merge, Append PDF Files. File: Split PDF Rotate a PDF Page. PDF Read. Text: Extract Text from PDF. Text: Search Text in PDF.
search a pdf file for text; convert a scanned pdf to searchable text
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
HTML webpage will have original formatting and interrelation of text and graphical How to Use C#.NET Demo Code to Convert PDF Document to HTML5 Files in C#
pdf text searchable; pdf search and replace text
PsychoPy - Psychology software for Python, Release 1.84.0
allowGUI (allowGUI): When the window is created, should the frame of the window and the mouse pointer be
visible. If set to False then both will be hidden.
paths (paths): Paths for additional Python packages can be specified. See more informationhere.
audio library (audioLib): As explained in theSound documentation, currently two sound libraries are available,
pygame and pyo.
audio driver (audioDriver): Also,different audio drivers are available.
flac audio compression(flac): Set flac audio compression.
parallel ports (parallelPorts): This list determines the addresses available in the drop-down menu for theParallel
Port Out Component.
2.4.5 Connection settings (Connections)
proxy (proxy): The proxy server used to connect to the internet if needed.
Must be of the form
http://111.222.333.444:5555
auto-proxy (autoProxy): PsychoPy should try to deduce the proxy automatically. If this is True and autoProxy is
successful,then the above field should contain a valid proxy address.
allowusage stats (allowUsageStats): Allow PsychoPy to ping a website at when the application starts up. Please
leave this set to True. The info sent is simply a string that gives the date, PsychoPy version and platform info.
There is no cost to you: no data is sent that could identify youand PsychoPy willnot be delayed in starting as a
result. The aim is simple: if we can show that lots of people are using PsychoPy there is a greater chance of it
being improved faster in the future.
check for updates (checkForUpdates): PsychoPy can (hopefully) automatically fetch and install updates. This will
only work forminorupdates and is still in a very experimental state (as ofv1.51.00).
timeout (timeout): Maximum time in seconds to wait fora connection response.
2.4.6 Key bindings
There are manyshortcutkeys that you can use in PsychoPy. For instance did you realise that youcan indent oroutdent
ablock ofcode with Ctrl-[ and Ctrl-] ?
2.5 Data outputs
There are anumberof different forms ofoutputthat PsychoPycangenerate,depending on the studyandyourpreferred
analysis software. Multiple file types can be output from a single experiment (e.g.Exceldatafilefor a quick browse,
Log filetocheckforerrormessagesand PsychoPy data file (.psydat)fordetailedanalysis)
2.5.1 Log file
Log files are actually rather difficult to use for data analysis but provide a chronological record of everything that
happened during your study. The level of content in themdepends on you. SeeLoggingdatafor further information.
10
Chapter 2. General issues
PsychoPy - Psychology software for Python, Release 1.84.0
2.5.2 PsychoPy data file (.psydat)
This is actually aTrialHandler orStairHandler object that has been saved to disk with the pythoncPickle
module.
These files are designedto be used by experienced users with previous experienceof pythonand, probably, matplotlib.
The contents of the file can be explored with dir(),as any other python object.
These files are ideal forbatch analysis witha python scriptandplotting via matplotlib. They contain more information
than the Excel or csv data files, andcan even be used to (re)create those files.
Of particular interest mightbe the attributes of the Handler:
extraInfo the extraInfo dictionary providedto the Handler during its creation
trialList the list of dictionaries provided to the Handler during its creation
data a dictionary of 2D numpy arrays. Each entry in the dictionary represents a type of data (e.g.
if you added ‘rt’ data during your experiment using ~psychopy.data.TrialHandler.addData then
‘rt’ will be a key). For each of those entries the 2D array represents the condition number and
repeat number (remember that these start at 0in python, unlike Matlab(TM) which starts at 1)
For example, to open a psydat file and examine some of its contents with:
from psychopy.misc import fromFile
datFile = fromFile('fileName.psydat')
#get info (added when the handler was created)
print datFile.extraInfo
#get data
print datFile.data
#get list of conditions
conditions = datFile.trialList
for condN, condition in enumerate(conditions):
print condition, datFile.data['response'][condN], numpy.mean(datFile.data['response'][condN])
Ideally, we should provide a demo script here for fetching and plotting some data (feel free to contribute).
2.5.3 Long-wide data file
This form of data file is the default data output from Builder experiments as of v1.74.00. Rather than summarising
data in a spreadsheet where one row represents all the data froma single condition(as in the summarised data format),
in long-wide data files the data is not collapsed by condition, but written chronologically with one row representing
one trial (hence it is typically longer than summarised data files). One column in this format is used for every single
piece of information available in the experiment, even where that information might be considered redundant (hence
the format is also ‘wide’).
Although these data files might not be quite as easy to read quickly by the experimenter,they are ideal for import and
analysis under packages such as R,SPSS orMatlab.
2.5.4 Excel data file
Excel 2007 files (.xlsx) are a useful and flexible way to output data as a spreadsheet. The file format is open and
supportedbynearlyall spreadsheetapplications(including older versionsofExcelandalsoOpenOffice). N.B.because
.xlsx files are widely supported, the older Excel file format (.xls) is not likely to be supported by PsychoPy unless a
usercontributes the code to the project.
Data from PsychoPy are output as a table, with a header row. Each row represents one condition (trial type) as given
totheTrialHandler. Each column represents a different type of data as givenin the header. For some data, where
2.5. Data outputs
11
PsychoPy - Psychology software for Python, Release 1.84.0
there are multiple columns fora single entryin the header. This indicates multiple trials. For example,with a standard
data file in whichresponse time has been collected as ‘rt’there will be a heading rt_raw withseveral columns,one for
each trial that occurred for the various trial types, and also an rt_mean heading with just a single column giving the
mean reaction time for each condition.
If you’re creatingexperiments bywriting scripts thenyou canspecify the sheetname as well as file namefor Excel file
outputs. This way you canstore multiplesessions fora single subject (use the subject as the filename and a date-stamp
as the sheetname) or a single file for multiple subjects (give the experiment name as the filename and the participant
as the sheetname).
Builder experiments use the participant name as the file name and then create a sheet in the Excel file foreach loop of
the experiment. e.g. you could have a set of practice trials in a loop,followed by a set ofmain trials, and these would
each receive theirown sheet in the data file.
2.5.5 Delimited text files (.csv, .tsv, .txt)
Formaximumcompatibility,especially forlegacyanalysis software,you canchoose to outputyour data as a delimited
text file. Typically this would be comma-separated values (.csv file) or tab-delimited (.tsv file). The format of those
files is exactly the same as the Excel file,but is limited by the file format to a single sheet.
2.6 Gamma correcting a monitor
Monitors typically don’t have linear outputs; when you request luminance level of 127, it is not exactly half the
luminance of value 254. For experiments that require the luminance values to be linear, a correction needs to be put
in place forthis nonlinearity which typically involves fitting a power law orgamma (㗾)function to the monitor output
values. This process is often referred to as gamma correction.
PsychoPy can help you perform gamma correction on your monitor, especially if you have one of the supported
photometers/spectroradiometers.
There are various different equations with which to perform gamma correction. The simple equation (2.1) is assumed
by most hardware manufacturers and gives a reasonable first approximation to a linear correction. The full gamma
correction equation (2.3)is more general,andlikely more accurate especiallywhere the lowest luminance value of the
monitor is bright, but also requires more information. It can only be used in labs that do have access to a photometer
orsimilar device.
2.6.1 Simple gamma correction
The simple form ofcorrection (as used by most hardware and software) is this:
㔿(㕉 ) = 㕎 +㕘㕉
(2.1)
where 㔿 is the final luminance value, 㕉 is the requested intensity (ranging 0 to 1), 㕎, 㕘 and 㗾 are constants for the
monitor.
This equation assumes that the luminance where the monitor is set to ‘black’ (V=0) comes entirely fromthe surround
and is therefore not subject to the same nonlinearity as the monitor. If the monitor itself contributes significantly to 㕎
then the function may not fit very well and the correction will be poor.
The advantage of this function is that the calibrating system (PsychoPy in this case) does not need to know anything
more about the monitor than the gamma value itself (for each gun). For the full gamma equation (2.3), the system
needs to know about several additional variables. The look-up table (LUT) values required to give a (roughly) linear
luminance output can be generated by:
㔿㕈㕇(㕉 ) = 㕉
1/㗾
(2.2)
12
Chapter 2. General issues
PsychoPy - Psychology software for Python, Release 1.84.0
where V is the entry in the LUT,between 0 (black) and 1 (white).
2.6.2 Full gamma correction
For very accurate gamma correction PsychoPy uses a more general form of the equation above, which can separate
the contribution of the monitor and the background to the lowest luminance level:
㔿(㕉 ) = 㕎 +(㕏 +㕘㕉 )
(2.3)
This equation makes no assumption about the origin of the base luminance value, but requires that the system knows
the values of 㕏 and 㕘 as well as 㗾.
The inverse values,required to build the LUT are found by:
㔿㕈㕇(㕉 ) =
((1 −㕉 )㕏
+㕉 (㕏+ 㕘)
)
1/㗾
−㕏
(2.4)
This is derived below, forthe interested reader. ;-)
And the associated luminance values for each point in the LUT are given by:
㔿(㕉) = 㕎 + (1− 㕉)㕏
+㕉 (㕏 +㕘)
2.6.3 Deriving the inverse full equation
The difficulty withthefull gamma equation(2.3) is thatthepresence of the 㕏value complicates theissue of calculating
the inverse values for the LUT.The simple inverse of(2.3) as a function of output luminance values is:
㔿㕈㕇(㔿) =
((㔿 − 㕎)
1/㗾
−㕏)
(2.5)
To use this equation we need to first calculate the linear set of luminance values, 㔿, that we are able to produce the
current monitorand lightingconditions and then deduce the LUT value needed to generate that luminance value.
We need toinsert into the LUT the values between 0 and 1 (to use the maximumrange) that map onto the linear range
from the minimum, m,to the maximum M possible luminance. Fromthe parameters in (2.3) it is clear that:
㕚= 㕎 +㕏
(2.6)
㕀= 㕎 +(㕏+ 㕘)
Thus,the luminance value, Lat anygiven point in the LUT, V, is given by
㔿(㕉 ) = 㕚+(㕀 −㕚)㕉
=㕎 +㕏
+(㕎 +(㕏 +㕘)
−㕎 −㕏
)㕉
=㕎 +㕏
+((㕏 +㕘)
−㕏
)㕉
=㕎 +(1 −㕉 )㕏
+㕉 (㕏 +㕘)
(2.7)
where 㕉 is the position in the LUT as a fraction.
Now,to generate the LUT as needed we simply take the inverse of (2.3):
㔿㕈㕇(㔿) =
(㔿 − 㕎)
1/㗾
−㕏
(2.8)
and substitute our 㔿(㕉 ) values from(2.7):
㔿㕈㕇(㕉) =
(㕎 +(1 −㕉 )㕏
+㕉 (㕏+ 㕘)
−㕎)
1/㗾
−㕏
=
((1 −㕉 )㕏
+㕉(㕏+ 㕘)
)
1/㗾
−㕏
(2.9)
2.6. Gamma correcting a monitor
13
PsychoPy - Psychology software for Python, Release 1.84.0
2.6.4 References
2.7 OpenGL and Rendering
All rendering performed by PsychoPyuses hardware-accelerated OpenGL rendering where possible. This means that,
as much as possible, the necessary processing to calculate pixel values is performed by the graphics card GPU rather
than bythe CPU.Forexample, when an image is rotated the calculations to determine whatpixel values should result,
and any interpolation that is needed, are determined by the graphics card automatically.
In the double-buffered system,stimuli are initially drawn into a piece ofmemoryon the graphics cardcalled the ‘back
buffer’, while the screen presents the ‘front buffer’. The back buffer initially starts blank (all pixels are set to the
window’s defined color) and as stimuli are ‘rendered’ they are gradually added to this back buffer. The way in which
stimuli are combined according to transparency rules is determined by theblendmodeof the window. At some point
intime,when we have rendered to this buffer all the objects that we wishto be presented, the buffers are ‘flipped’ such
that the stimuli we have been drawing are presented simultaneously. The monitor updates at a very precise fixed rate
and the flipping of the window will be synchronised to this monitor update if possible (seeSynctoVBLandwaitfor
VBL).
Each update of the window is referred to as a ‘frame’ and this ultimately determines the temporal resolution with
which stimuli can be presented (you cannot present your stimulus for any duration other than a multiple of the frame
duration). Inaddition to synchronising flips to the frame refresh rate, PsychoPy can optionally go a further step of not
allowing the code to continue until a screen flip has occurred on the screen, which is useful in ascertaining exactly
when the frame refresh occurred (and, thus, when your stimulus actually appeared to the subject). These timestamps
are very precise on most computers. For furtherinformation about synchronising and waiting for the refresh seeSync
to VBL and wait for VBL.
If the code/processing required torender all you stimuli to the screentakes longer to complete than one screen refresh
then you will ‘drop/skip a frame’. In this case the previous frame will be left on screen for a further frame period
and the flip will only take effect on the following screen update. As a result, time-consuming operations such as disk
accesses or execution of many lines of code, should be avoided while stimuli are being dynamically updated (if you
care about the precise timing of your stimuli). For further information see the sections onDetectingdroppedframes
andReducingdroppedframes.
2.7.1 Fast and slow functions
The fact that modern graphics processors are extremely powerful; they can carry out a great deal of processing from
avery small number of commands. Consider, for instance, the PsychoPy Coder demo elementArrayStim in which
several hundred Gabor patches are updated frame by frame. The graphics card has to blend a sinusoidal grating with
agrey background, using a Gaussian profile, several hundred times each at a different orientation and location and it
does this in less than one screen refresh on a good graphics card.
There are three things that are relatively slow and should be avoided at critical points in time (e.g. when rendering a
dynamic orbrief stimulus). These are:
1. disk accesses
2. passing large amounts of data to the graphics card
3. making large numbers ofpython calls.
Functions that are very fast:
1. Calls that move, resize,rotate your stimuli are likely to carry almost no overhead
2. Calls that alter the color, contrast or opacity of your stimulus will also have no overhead IF your graphics card
supportsOpenGLShaders
14
Chapter 2. General issues
Documents you may be interested
Documents you may be interested