Aller au contenu

HDR-10bpp-Display-Test : Assembler des canaux dix bits pour Cairo

Cette expérience affiche des images dans GTK avec Cairo. Viewer3.py rend la représentation explicite: les canaux sont masqués et assemblés dans un tampon uint32 avant la création d’une surface RGB30.

Matériel et infographie
  • Mis à jour
  • 13
  • Python · 98.43%
Langages du dépôtPython 98.43%2

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
Python98.43%8 200
Shell1.57%131

GitHub · README · Statistiques de langages

Aperçu

Pourquoi il existe

Pipeline de test d'affichage 10 bits HDR vérifiant le banding de couleur et la luminance sous Linux.

Cas d’usage

Calibration et vérification d'écrans HDR 10 bits sur stations de travail Linux.

Démarrage

Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.

README.md · Prerequisites
sudo apt-get install xserver-xorg python3 python3-gi python3-gi-cairo gir1.2-gtk-3.0 imagej
README.md · Installing
pip3 install imageio
README.md · Running the test
git clone https://github.com/yourusername/HDR-10bpp-Display-Test.git
README.md · Running the test
cd HDR-10bpp-Display-Test
README.md · Running the test
sudo systemctl stop lightdm || sudo systemctl stop gdm
sudo pkill Xorg

Références du dépôt

Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.

Prérequis et premier essai

Prerequisites

README.md

To run the test, you will need the following software installed on your system:

  • X server
  • Python 3
  • GTK 3
  • ImageJ (for displaying images with a 10-bit color depth)
  • ImageIO (for reading image files) You can install these packages on Ubuntu or Debian-based systems by running the following command:
Lire les instructions complètes ↗

Installing

README.md

To install ImageIO, you can use pip:
Lire les instructions complètes ↗
Exploitation et dépannage

Troubleshooting

README.md

If the X server does not start with a color depth of 30, try starting it with a color depth of 24:
Lire les instructions complètes ↗
Développement et contributions

HDR-10bpp-Display-Test

README.md

This is a simple test to verify the HDR 4K display on Linux using a color depth of 10 bits per channel. The test requires an HDR 4K display and a Linux environment with the X server installed.
Lire les instructions complètes ↗

Running the test

README.md

To run the test, follow these steps:

  1. Clone the repository:
  2. Navigate to the project directory:
  3. Stop the display manager and X server:
  4. Start the X server with a color depth of 30:
  5. If the X server was started successfully, the output of the following command should indicate a depth of 30:
  6. Launch the viewer application:
  7. The viewer window will open. To display an image, run the following command:
  8. The image should be displayed in the viewer window. Verify that the image is displayed correctly and that the colors are accurate.
Lire les instructions complètes ↗
Documentation source

1 documents lus parmi 1 candidats.

Fonctions et composants 2

Pixels et affichage
imageio lit le tableau source. _draw_on alloue un tampon et décale chaque canal selon la profondeur choisie, puis le transmet à cairo.ImageSurface.create_for_data. Le callback GTK affiche cette surface.
Parcours vidéo
Un thread lit les images vidéo et met à jour l’image courante à la cadence demandée. Le dessin traite aussi manuellement les événements GTK. Cette ancienne approche demande de vérifier quel thread possède les opérations d’interface.

Architecture

Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.

Contexte système Contexte
  1. Image ou vidéo
  2. Tableau imageio
  3. Masquage et assemblage
  4. Surface Cairo RGB30
  5. Zone de dessin GTK

Liens vérifiés dans le dépôt.

Mermaid Diagramme interactif (chargement à l’ouverture)

Vue générale des composants et des échanges vérifiés dans le dépôt.

Vue statique de l’architecture de HDR-10bpp-Display-Test
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
flowchart LR

subgraph group_setup["Display setup"]
  node_xserver["X server"]
end

subgraph group_viewers["Viewer applications"]
  node_viewer1["Image viewer<br/>[Viewer.py]"]
  node_viewer3["Image/video viewer<br/>[Viewer3.py]"]
end

subgraph group_render["Image rendering"]
  node_gtk1["GTK window<br/>[Viewer.py]"]
  node_gtk3["GTK window<br/>[Viewer3.py]"]
  node_imageio1["Image input<br/>[Viewer.py]"]
  node_imageio3["Image/video input<br/>[Viewer3.py]"]
  node_cairo1["Cairo drawing<br/>[Viewer.py]"]
  node_cairo3["Cairo drawing<br/>[Viewer3.py]"]
end

node_user(("Test operator"))
node_imagej["ImageJ"]

node_user -->|"starts at depth"| node_xserver
node_user -->|"launches"| node_viewer1
node_user -->|"launches"| node_viewer3
node_viewer1 -->|"creates window"| node_gtk1
node_viewer1 -->|"reads image"| node_imageio1
node_viewer1 -->|"draws image"| node_cairo1
node_gtk1 -->|"dispatches draw"| node_cairo1
node_viewer3 -->|"creates window"| node_gtk3
node_viewer3 -->|"reads image/video"| node_imageio3
node_viewer3 -->|"draws frames"| node_cairo3
node_gtk3 -->|"dispatches draw"| node_cairo3
node_user -->|"opens image"| node_imagej
node_imagej -->|"displays for checking"| node_viewer1


class node_xserver toneBlue
class node_viewer1,node_viewer3 toneAmber
class node_gtk1,node_gtk3,node_imageio1,node_imageio3,node_cairo1,node_cairo3 toneMint
class node_user,node_imagej toneIndigo

Un test Linux pour les affichages HDR et 10 bits. Le parcours démarre un serveur X à la profondeur demandée, ouvre une visionneuse d’images ou de vidéos, puis dessine les images avec GTK et Cairo pour les vérifier.

Composants
11
Connexions
13
Liens appuyés par le code ou le README
13/13
Version texte du diagramme
  • Image ou vidéo → Tableau imageio
  • Tableau imageio → Masquage et assemblage
  • Masquage et assemblage → Surface Cairo RGB30
  • Surface Cairo RGB30 → Zone de dessin GTK
Suivre un parcours dans le code

Examinez _draw_on pour voir comment la profondeur change les décalages et le format de surface. Le stockage dix bits concerne la précision numérique; les courbes HDR, les métadonnées et la calibration demandent un travail supplémentaire.

Types et structure des fichiers

2 types déclarés, dont 2 dans l’aperçu des relations de base.

Diagramme des types
classDiagram
direction TB
class td926548d9d56["Viewer"] {
  __init__()
  _initUI()
  _window_state()
  size()
}
class t015018d2192b["Viewer"] {
  __init__()
  _initUI()
  _window_state()
  size()
}
class bb574778f1f7f["object"] {
  <<unresolved_base>>
}
bb574778f1f7f <|-- td926548d9d56
class ba71980200e35["object"] {
  <<unresolved_base>>
}
ba71980200e35 <|-- t015018d2192b

Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.

Index des types
  • Viewer (class) · Viewer3.py:27

    Méthodes dans l’aperçu : __init__, _initUI, _window_state, size.

    Bases déclarées : object.

  • Viewer (class) · Viewer.py:24

    Méthodes dans l’aperçu : __init__, _initUI, _window_state, size.

    Bases déclarées : object.

Référence

4 / 4 fichiers admissibles lus (7 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.

Ce que couvre l’analyse

Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.

Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.

Carte des fichiers
flowchart TD
  root["HDR-10bpp-Display-Test"]
  f0["Viewer3.py"]
  root --> f0
  f1["Xdepth.sh"]
  root --> f1
  f2["README.md"]
  root --> f2
  f3["Viewer.py"]
  root --> f3

Fichiers à lire 3

Références