OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

CUDAの特殊なメモリ型確保関数をラップし、参照カウントを行うクラス。 続きを読む...

#include <opencv2/core/cuda.hpp>

Collaboration diagram for cv::cuda::HostMem:

公開型

enum  AllocType {
  PAGE_LOCKED = 1 ,
  SHARED = 2 ,
  WRITE_COMBINED = 4
}
 

公開メンバ関数

 HostMem (const HostMem &m)
 
 HostMem (HostMem::AllocType alloc_type=HostMem::AllocType::PAGE_LOCKED)
 
 HostMem (InputArray arr, HostMem::AllocType alloc_type=HostMem::AllocType::PAGE_LOCKED)
 ホストメモリからデータをコピーして生成する
 
 HostMem (int rows, int cols, int type, HostMem::AllocType alloc_type=HostMem::AllocType::PAGE_LOCKED)
 
 HostMem (Size size, int type, HostMem::AllocType alloc_type=HostMem::AllocType::PAGE_LOCKED)
 
 ~HostMem ()
 
int channels () const
 
HostMem clone () const
 行列のディープコピーを返す。すなわちデータがコピーされる
 
void create (int rows, int cols, int type)
 行列がすでに指定されたサイズと型を持っていない限り、新しい行列データを確保する。
 
void create (Size size, int type)
 
GpuMat createGpuMatHeader () const
 CPUメモリをGPUアドレス空間にマッピングし、参照カウントなしで cuda::GpuMat ヘッダを生成する。
 
Mat createMatHeader () const
 HostMem データに対して参照カウントを無効化した行列ヘッダを返す。
 
int depth () const
 
size_t elemSize () const
 
size_t elemSize1 () const
 
bool empty () const
 
bool isContinuous () const
 
HostMemoperator= (const HostMem &m)
 
void release ()
 参照カウンタをデクリメントし、必要に応じてメモリを解放する。
 
HostMem reshape (int cn, int rows=0) const
 
Size size () const
 
size_t step1 () const
 
void swap (HostMem &b)
 別のスマートポインタと交換する
 
int type () const
 

静的公開メンバ関数

static MatAllocatorgetAllocator (HostMem::AllocType alloc_type=HostMem::AllocType::PAGE_LOCKED)
 

公開変数類

AllocType alloc_type
 
int cols
 
uchardata
 
const uchardataend
 
uchardatastart
 
int flags
 
int * refcount
 
int rows
 
size_t step
 

詳細説明

CUDAの特殊なメモリ型確保関数をラップし、参照カウントを行うクラス。

そのインターフェースもMatに似ているが、追加のメモリ型引数を持つ。

  • PAGE_LOCKED は、GPUとの間でのデータの高速かつ非同期なアップロード/ダウンロードに一般的に用いられるページロックメモリ型を設定する。
  • SHARED は、サポートされている場合にホストメモリをGPUアドレス空間にマッピングできるようにするゼロコピーメモリ確保を指定する。
  • WRITE_COMBINED は、CPUによってキャッシュされないライトコンバインドバッファを設定する。このようなバッファは、GPUがデータを読み取るだけの場合にGPUへデータを供給するために用いられる。利点はCPUキャッシュの利用効率が向上することである。
覚え書き
このようなメモリ型の確保サイズは通常制限される。詳細については CUDA 2.2 Pinned Memory APIs ドキュメントまたは CUDA C Programming Guide を参照のこと。

列挙型メンバ詳解

◆ AllocType

列挙値
PAGE_LOCKED 
SHARED 
WRITE_COMBINED 

構築子と解体子の詳解

◆ HostMem() [1/5]

cv::cuda::HostMem::HostMem ( HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED)
explicit
Python:
cv.cuda.HostMem([, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(rows, cols, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(size, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(arr[, alloc_type]) -> <cuda_HostMem object>

◆ HostMem() [2/5]

cv::cuda::HostMem::HostMem ( const HostMem & m)
Python:
cv.cuda.HostMem([, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(rows, cols, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(size, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(arr[, alloc_type]) -> <cuda_HostMem object>

◆ HostMem() [3/5]

cv::cuda::HostMem::HostMem ( int rows,
int cols,
int type,
HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED )
Python:
cv.cuda.HostMem([, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(rows, cols, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(size, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(arr[, alloc_type]) -> <cuda_HostMem object>

◆ HostMem() [4/5]

cv::cuda::HostMem::HostMem ( Size size,
int type,
HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED )
Python:
cv.cuda.HostMem([, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(rows, cols, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(size, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(arr[, alloc_type]) -> <cuda_HostMem object>

◆ HostMem() [5/5]

cv::cuda::HostMem::HostMem ( InputArray arr,
HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED )
explicit
Python:
cv.cuda.HostMem([, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(rows, cols, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(size, type[, alloc_type]) -> <cuda_HostMem object>
cv.cuda.HostMem(arr[, alloc_type]) -> <cuda_HostMem object>

ホストメモリからデータをコピーして生成する

◆ ~HostMem()

cv::cuda::HostMem::~HostMem ( )

メンバ関数詳解

◆ channels()

int cv::cuda::HostMem::channels ( ) const
Python:
cv.cuda.HostMem.channels() -> retval

◆ clone()

HostMem cv::cuda::HostMem::clone ( ) const
Python:
cv.cuda.HostMem.clone() -> retval

行列のディープコピーを返す。すなわちデータがコピーされる

◆ create() [1/2]

void cv::cuda::HostMem::create ( int rows,
int cols,
int type )
Python:
cv.cuda.HostMem.create(rows, cols, type) -> None

行列がすでに指定されたサイズと型を持っていない限り、新しい行列データを確保する。

◆ create() [2/2]

void cv::cuda::HostMem::create ( Size size,
int type )
Python:
cv.cuda.HostMem.create(rows, cols, type) -> None

◆ createGpuMatHeader()

GpuMat cv::cuda::HostMem::createGpuMatHeader ( ) const

CPUメモリをGPUアドレス空間にマッピングし、参照カウントなしで cuda::GpuMat ヘッダを生成する。

これはSHAREDフラグでメモリが確保されており、かつハードウェアでサポートされている場合にのみ実行できる。ノートパソコンではビデオメモリとCPUメモリを共有していることが多いため、アドレス空間をマッピングでき、余分なコピーを排除できる。

◆ createMatHeader()

Mat cv::cuda::HostMem::createMatHeader ( ) const
Python:
cv.cuda.HostMem.createMatHeader() -> retval

HostMem データに対して参照カウントを無効化した行列ヘッダを返す。

◆ depth()

int cv::cuda::HostMem::depth ( ) const
Python:
cv.cuda.HostMem.depth() -> retval

◆ elemSize()

size_t cv::cuda::HostMem::elemSize ( ) const
Python:
cv.cuda.HostMem.elemSize() -> retval

◆ elemSize1()

size_t cv::cuda::HostMem::elemSize1 ( ) const
Python:
cv.cuda.HostMem.elemSize1() -> retval

◆ empty()

bool cv::cuda::HostMem::empty ( ) const
Python:
cv.cuda.HostMem.empty() -> retval

◆ getAllocator()

static MatAllocator * cv::cuda::HostMem::getAllocator ( HostMem::AllocType alloc_type = HostMem::AllocType::PAGE_LOCKED)
static

◆ isContinuous()

bool cv::cuda::HostMem::isContinuous ( ) const
Python:
cv.cuda.HostMem.isContinuous() -> retval

◆ operator=()

HostMem & cv::cuda::HostMem::operator= ( const HostMem & m)

◆ release()

void cv::cuda::HostMem::release ( )

参照カウンタをデクリメントし、必要に応じてメモリを解放する。

◆ reshape()

HostMem cv::cuda::HostMem::reshape ( int cn,
int rows = 0 ) const
Python:
cv.cuda.HostMem.reshape(cn[, rows]) -> retval

同じデータに対して、チャンネル数や行数を変えた別の HostMem ヘッダを生成する

◆ size()

Size cv::cuda::HostMem::size ( ) const
Python:
cv.cuda.HostMem.size() -> retval

◆ step1()

size_t cv::cuda::HostMem::step1 ( ) const
Python:
cv.cuda.HostMem.step1() -> retval

◆ swap()

void cv::cuda::HostMem::swap ( HostMem & b)
Python:
cv.cuda.HostMem.swap(b) -> None

別のスマートポインタと交換する

◆ type()

int cv::cuda::HostMem::type ( ) const
Python:
cv.cuda.HostMem.type() -> retval

メンバ変数詳解

◆ alloc_type

AllocType cv::cuda::HostMem::alloc_type

◆ cols

int cv::cuda::HostMem::cols

◆ data

uchar* cv::cuda::HostMem::data

◆ dataend

const uchar* cv::cuda::HostMem::dataend

◆ datastart

uchar* cv::cuda::HostMem::datastart

◆ flags

int cv::cuda::HostMem::flags

◆ refcount

int* cv::cuda::HostMem::refcount

◆ rows

int cv::cuda::HostMem::rows

◆ step

size_t cv::cuda::HostMem::step

このクラス詳解は次のファイルから抽出されました: