Vsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget9/translations/zh_CN/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/zh_TW/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/it_IT/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ja_JP/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ko_KR/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/sp_SP/admin-guide/media/raspberrypi-pisp-bemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhS/var/lib/git/docbuild/linux/Documentation/admin-guide/media/raspberrypi-pisp-be.rsthKubhsection)}(hhh](htitle)}(h9Raspberry Pi PiSP Back End Memory-to-Memory ISP (pisp-be)h]h9Raspberry Pi PiSP Back End Memory-to-Memory ISP (pisp-be)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hThe PiSP Back Endh]hThe PiSP Back End}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX+The PiSP Back End is a memory-to-memory Image Signal Processor (ISP) which reads image data from DRAM memory and performs image processing as specified by the application through the parameters in a configuration buffer, before writing pixel data back to memory through two distinct output channels.h]hX+The PiSP Back End is a memory-to-memory Image Signal Processor (ISP) which reads image data from DRAM memory and performs image processing as specified by the application through the parameters in a configuration buffer, before writing pixel data back to memory through two distinct output channels.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hThe ISP registers and programming model are documented in the `Raspberry Pi Image Signal Processor (PiSP) Specification document`_h](h>The ISP registers and programming model are documented in the }(hhhhhNhNubh reference)}(hD`Raspberry Pi Image Signal Processor (PiSP) Specification document`_h]hARaspberry Pi Image Signal Processor (PiSP) Specification document}(hhhhhNhNubah}(h]h ]h"]h$]h&]nameARaspberry Pi Image Signal Processor (PiSP) Specification documentrefuri_https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdfuh1hhhresolvedKubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe PiSP Back End ISP processes images in tiles. The handling of image tessellation and the computation of low-level configuration parameters is realized by a free software library called `libpisp `_.h](hThe PiSP Back End ISP processes images in tiles. The handling of image tessellation and the computation of low-level configuration parameters is realized by a free software library called }(hj hhhNhNubh)}(h3`libpisp `_h]hlibpisp}(hjhhhNhNubah}(h]h ]h"]h$]h&]namelibpispj&https://github.com/raspberrypi/libpispuh1hhj ubhtarget)}(h) h]h}(h]libpispah ]h"]libpispah$]h&]refurij%uh1j& referencedKhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXgThe full image processing pipeline, which involves capturing RAW Bayer data from an image sensor through a MIPI CSI-2 compatible capture interface, storing them in DRAM memory and processing them in the PiSP Back End to obtain images usable by an application is implemented in `libcamera `_ as part of the Raspberry Pi platform support.h](hXThe full image processing pipeline, which involves capturing RAW Bayer data from an image sensor through a MIPI CSI-2 compatible capture interface, storing them in DRAM memory and processing them in the PiSP Back End to obtain images usable by an application is implemented in }(hj@hhhNhNubh)}(h$`libcamera `_h]h libcamera}(hjHhhhNhNubah}(h]h ]h"]h$]h&]name libcamerajhttps://libcamera.orguh1hhj@ubj')}(h h]h}(h] libcameraah ]h"] libcameraah$]h&]refurijXuh1j&j5Khj@ubh. as part of the Raspberry Pi platform support.}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]the-pisp-back-endah ]h"]the pisp back endah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hThe pisp-be driverh]hThe pisp-be driver}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhhhhhKubh)}(hX_The Raspberry Pi PiSP Back End (pisp-be) driver is located under drivers/media/platform/raspberrypi/pisp-be. It uses the `V4L2 API` to register a number of video capture and output devices, the `V4L2 subdev API` to register a subdevice for the ISP that connects the video devices in a single media graph realized using the `Media Controller (MC) API`.h](hyThe Raspberry Pi PiSP Back End (pisp-be) driver is located under drivers/media/platform/raspberrypi/pisp-be. It uses the }(hjhhhNhNubhtitle_reference)}(h `V4L2 API`h]hV4L2 API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh? to register a number of video capture and output devices, the }(hjhhhNhNubj)}(h`V4L2 subdev API`h]hV4L2 subdev API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhp to register a subdevice for the ISP that connects the video devices in a single media graph realized using the }(hjhhhNhNubj)}(h`Media Controller (MC) API`h]hMedia Controller (MC) API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjxhhubh)}(hKThe media topology registered by the `pisp-be` driver is represented below:h](h%The media topology registered by the }(hjhhhNhNubj)}(h `pisp-be`h]hpisp-be}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh driver is represented below:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hjxhhubj')}(h.. _pips-be-topology:h]h}(h]h ]h"]h$]h&]refidpips-be-topologyuh1j&hK(hjxhhhhubkfigure kernel_figure)}(hhh]hfigure)}(hhh]himage)}(hz.. kernel-figure:: raspberrypi-pisp-be.dot :alt: Diagram of the default media pipeline topology :align: center h]h}(h]h ]h"]h$]h&]alt.Diagram of the default media pipeline topologyuri)admin-guide/media/raspberrypi-pisp-be.dot candidates}*jsuh1jhjhhhKubah}(h]h ]h"]h$]h&]aligncenteruh1jhjubah}(h]jah ]h"]pips-be-topologyah$]h&]uh1jhjxhhhhhNexpect_referenced_by_name}j%jsexpect_referenced_by_id}jjsubh)}(h;The media graph registers the following video device nodes:h]h;The media graph registers the following video device nodes:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjxhhubh bullet_list)}(hhh](h list_item)}(hQpispbe-input: output device for images to be submitted to the ISP for processing.h]h)}(hQpispbe-input: output device for images to be submitted to the ISP for processing.h]hQpispbe-input: output device for images to be submitted to the ISP for processing.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjAubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h5pispbe-tdn_input: output device for temporal denoise.h]h)}(hj[h]h5pispbe-tdn_input: output device for temporal denoise.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjYubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h=pispbe-stitch_input: output device for image stitching (HDR).h]h)}(hjrh]h=pispbe-stitch_input: output device for image stitching (HDR).}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjpubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h:pispbe-output0: first capture device for processed images.h]h)}(hjh]h:pispbe-output0: first capture device for processed images.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h;pispbe-output1: second capture device for processed images.h]h)}(hjh]h;pispbe-output1: second capture device for processed images.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h7pispbe-tdn_output: capture device for temporal denoise.h]h)}(hjh]h7pispbe-tdn_output: capture device for temporal denoise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h?pispbe-stitch_output: capture device for image stitching (HDR).h]h)}(hjh]h?pispbe-stitch_output: capture device for image stitching (HDR).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubj@)}(h?pispbe-config: output device for ISP configuration parameters. h]h)}(h>pispbe-config: output device for ISP configuration parameters.h]h>pispbe-config: output device for ISP configuration parameters.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1j?hj<hhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1j:hhhK1hjxhhubh)}(hhh](h)}(h pispbe-inputh]h pispbe-input}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKhjhhubeh}(h] pispbe-inputah ]h"] pispbe-inputah$]h&]uh1hhjxhhhhhKhhhNhNubh)}(h:c:type:`pisp_be_tiles_config`h]hliteral)}(hjHh]hpisp_be_tiles_config}(hjLhhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1jJhjFubah}(h]h ]h"]h$]h&]refdoc%admin-guide/media/raspberrypi-pisp-be refdomainjWreftypetype refexplicitrefwarn reftargetpisp_be_tiles_configuh1hhhhK`hj>ubhC C structure and the meaning of each parameter is described in the }(hj>hhhNhNubh)}(hD`Raspberry Pi Image Signal Processor (PiSP) Specification document`_h]hARaspberry Pi Image Signal Processor (PiSP) Specification document}(hjohhhNhNubah}(h]h ]h"]h$]h&]nameARaspberry Pi Image Signal Processor (PiSP) Specification documentjjuh1hhj>jKubh.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK`hj hhubeh}(h] pispbe-configah ]h"] pispbe-configah$]h&]uh1hhjxhhhhhK[ubeh}(h]the-pisp-be-driverah ]h"]the pisp-be driverah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hISP configurationh]hISP configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKfubh)}(hXThe ISP configuration is described solely by the content of the parameters buffer. The only parameter that userspace needs to configure using the V4L2 API is the image format on the output and capture video devices for validation of the content of the parameters buffer.h]hXThe ISP configuration is described solely by the content of the parameters buffer. The only parameter that userspace needs to configure using the V4L2 API is the image format on the output and capture video devices for validation of the content of the parameters buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjhhubj')}(h.. _Raspberry Pi Image Signal Processor (PiSP) Specification document: https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdfh]h}(h]?raspberry-pi-image-signal-processor-pisp-specification-documentah ]h"]Araspberry pi image signal processor (pisp) specification documentah$]h&]jjuh1j&hKmhjhhhhj5Kubeh}(h]isp-configurationah ]h"]isp configurationah$]h&]uh1hhhhhhhhKfubeh}(h]7raspberry-pi-pisp-back-end-memory-to-memory-isp-pisp-beah ]h"]9raspberry pi pisp back end memory-to-memory isp (pisp-be)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}Araspberry pi image signal processor (pisp) specification document](hj.joesrefids}j]jasnameids}(jjjujrj1j.jbj_jjj%jjMjJjjjjj jjjjjjju nametypes}(jjuj1jbjj%jMjjj jjjuh}(jhjrhj.j(j_jYjjxjjjJjjjPjjjjjj jjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h6Hyperlink target "pips-be-topology" is not referenced.}hjcsbah}(h]h ]h"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineK(uh1j^uba transformerN include_log] decorationNhhub.