€• WŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ9/translations/zh_CN/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/zh_TW/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/it_IT/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ja_JP/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ko_KR/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/pt_BR/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/sp_SP/admin-guide/media/raspberrypi-pisp-be”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/admin-guide/media/raspberrypi-pisp-be.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ9Raspberry Pi PiSP Back End Memory-to-Memory ISP (pisp-be)”h]”hŒ9Raspberry Pi PiSP Back End Memory-to-Memory ISP (pisp-be)”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒThe PiSP Back End”h]”hŒThe PiSP Back End”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ 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.”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhï)�”}”(hŒ‚The 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 ”…”�”}”(hhþh²hh³Nh´NubhŒ reference”“”)�”}”(hŒD`Raspberry Pi Image Signal Processor (PiSP) Specification document`_”h]”hŒARaspberry Pi Image Signal Processor (PiSP) Specification document”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒARaspberry Pi Image Signal Processor (PiSP) Specification document”Œrefuri”Œ_https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf”uh1jhhþŒresolved”Kubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhï)�”}”(hŒðThe 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]”(hŒ¼The 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!h²hh³Nh´Nubj)�”}”(hŒ3`libpisp `_”h]”hŒlibpisp”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œlibpisp”jŒ&https://github.com/raspberrypi/libpisp”uh1jhj!ubhŒtarget”“”)�”}”(hŒ) ”h]”h}”(h]”Œlibpisp”ah ]”h"]”Œlibpisp”ah$]”h&]”Œrefuri”j9uh1j:Œ referenced”Khj!ubhŒ.”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhï)�”}”(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 ”…”�”}”(hjTh²hh³Nh´Nubj)�”}”(hŒ$`libcamera `_”h]”hŒ libcamera”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”Œ libcamera”jŒhttps://libcamera.org”uh1jhjTubj;)�”}”(hŒ ”h]”h}”(h]”Œ libcamera”ah ]”h"]”Œ libcamera”ah$]”h&]”Œrefuri”jluh1j:jIKhjTubhŒ. as part of the Raspberry Pi platform support.”…”�”}”(hjTh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubeh}”(h]”Œthe-pisp-back-end”ah ]”h"]”Œthe pisp back end”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒThe pisp-be driver”h]”hŒThe pisp-be driver”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŒh²hh³hÇh´Kubhï)�”}”(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]”(hŒyThe Raspberry Pi PiSP Back End (pisp-be) driver is located under drivers/media/platform/raspberrypi/pisp-be. It uses the ”…”�”}”(hj�h²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `V4L2 API`”h]”hŒV4L2 API”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hj�ubhŒ? to register a number of video capture and output devices, the ”…”�”}”(hj�h²hh³Nh´Nubj¦)�”}”(hŒ`V4L2 subdev API`”h]”hŒV4L2 subdev API”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hj�ubhŒp to register a subdevice for the ISP that connects the video devices in a single media graph realized using the ”…”�”}”(hj�h²hh³Nh´Nubj¦)�”}”(hŒ`Media Controller (MC) API`”h]”hŒMedia Controller (MC) API”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hj�ubhŒ.”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hjŒh²hubhï)�”}”(hŒKThe media topology registered by the `pisp-be` driver is represented below:”h]”(hŒ%The media topology registered by the ”…”�”}”(hjãh²hh³Nh´Nubj¦)�”}”(hŒ `pisp-be`”h]”hŒpisp-be”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j¥hjãubhŒ driver is represented below:”…”�”}”(hjãh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K&hjŒh²hubj;)�”}”(hŒ.. _pips-be-topology:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œpips-be-topology”uh1j:h´K(hjŒh²hh³hÇubŒkfigure”Œ kernel_figure”“”)�”}”(hhh]”hŒfigure”“”)�”}”(hhh]”hŒimage”“”)�”}”(hŒz.. 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 topology”Œuri”Œ)admin-guide/media/raspberrypi-pisp-be.dot”Œ candidates”}”Œ*”j)suh1jhjh³hÇh´Kubah}”(h]”h ]”h"]”h$]”h&]”Œalign”Œcenter”uh1jhjubah}”(h]”jah ]”h"]”Œpips-be-topology”ah$]”h&]”uh1jhjŒh²hh³hÇh´NŒexpect_referenced_by_name”}”j9jsŒexpect_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@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K/hjŒh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒQpispbe-input: output device for images to be submitted to the ISP for processing.”h]”hï)�”}”(hŒQpispbe-input: output device for images to be submitted to the ISP for processing.”h]”hŒQpispbe-input: output device for images to be submitted to the ISP for processing.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K1hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ5pispbe-tdn_input: output device for temporal denoise.”h]”hï)�”}”(hjoh]”hŒ5pispbe-tdn_input: output device for temporal denoise.”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K3hjmubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ=pispbe-stitch_input: output device for image stitching (HDR).”h]”hï)�”}”(hj†h]”hŒ=pispbe-stitch_input: output device for image stitching (HDR).”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K4hj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ:pispbe-output0: first capture device for processed images.”h]”hï)�”}”(hj�h]”hŒ:pispbe-output0: first capture device for processed images.”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K5hj›ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ;pispbe-output1: second capture device for processed images.”h]”hï)�”}”(hj´h]”hŒ;pispbe-output1: second capture device for processed images.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K6hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ7pispbe-tdn_output: capture device for temporal denoise.”h]”hï)�”}”(hjËh]”hŒ7pispbe-tdn_output: capture device for temporal denoise.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K7hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(hŒ?pispbe-stitch_output: capture device for image stitching (HDR).”h]”hï)�”}”(hjâh]”hŒ?pispbe-stitch_output: capture device for image stitching (HDR).”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K8hjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´NubjT)�”}”(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.”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K9hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jShjPh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jNh³hÇh´K1hjŒh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ pispbe-input”h]”hŒ pispbe-input”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´Khjh²hubeh}”(h]”Œ pispbe-input”ah ]”h"]”Œ pispbe-input”ah$]”h&]”uh1hÈhjŒh²hh³hÇh´K